1

我被分配了一個任務來使用Firebase實施推送通知,但我有點新。Firebase通知 - 發送到用戶羣vs發送到主題區別

望着文檔:

https://firebase.google.com/docs/notifications/android/console-audience 

我不能下我應該用什麼情況下send to user segmentsend to a topic告訴。

有人可以請給我一些例子何時使用一個或另一個,並指出了區別?提前謝謝:)

回答

2

使用用戶鏈段

  • 典型地發送推送通知到一個特定和有限的一組設備。
  • 消息傳遞幾乎是瞬間的(以我的經驗)。另外,我還沒有像GCM早期的情況那樣觀察過節流。

使用主題

  • 主題或發佈/訂閱機制用於相對大量的觀衆,信息類型是公共的。例子是天氣和新聞。
  • 主題還具有延遲(消息遞送可以被節流)
4

用戶細分

  • 只能經由Firebase Console將通知發送到用戶段。 (見here)。
  • 有限公司向特定對象(從docs您鏈接):

    選擇消息目標。該對話框會根據您選擇的應用/應用版本,設備語言受衆中的用戶顯示進一步的選項以優化目標。

  • 也如已經在doc您鏈接中提到:

    您可以針對預定義的用戶段或定製audiences在火力地堡分析創建。

主題

  • 令牌/設備管理不是必須的。
  • 無限數量的訂戶。
  • 可以使用FCM API發送給主題。
  • 可以通過客戶端應用輕鬆訂閱/取消訂閱。

恕我直言,如果你想要的東西是快速和簡單,去與主題訊息。

0

首先你要保存令牌要發送通知,我救了他們對錶調用「FCM_TOKEN」每一個設備,然後檢索令牌(我使用的PDO),並利用它們發送while循環是這樣的:

while($row=$statement->fetch(PDO::FETCH_BOTH)) 
      { 
       $key = $row['Fcm_Token']; 
       $headers = array(
       'Authorization:key=' .$server_key, 
       'Content-Type:application/json'); 
       $fields = array('to'=>$key, 
        'notification'=>array('title'=>$titulo, 'body'=>$mensaje, 
         'click_action'=>'com.example.witch.gtslsac_app_1_TARGET_NOTIFICATION' 
         )); 
         $playload=json_encode($fields); 
      $curl_session = curl_init(); 
      curl_setopt($curl_session, CURLOPT_URL, $path_to_fcm); 
      curl_setopt($curl_session, CURLOPT_POST, true); 
      curl_setopt($curl_session, CURLOPT_HTTPHEADER, $headers); 
      curl_setopt($curl_session, CURLOPT_RETURNTRANSFER, true); 
      curl_setopt($curl_session, CURLOPT_SSL_VERIFYPEER, false); 
      curl_setopt($curl_session, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4); 
      curl_setopt($curl_session, CURLOPT_POSTFIELDS, $playload); 

      $result = curl_exec($curl_session); 
      echo $result; 
      } 

不要忘記關閉會話curl_close(curl_session $); 這對我來說工作得很好。