1

私はFirebaseを使用してプッシュ通知を実装するタスクを割り当てられましたが、これは新しいものです。Firebase通知 - ユーザーセグメントへの送信とトピックへの送信の差

のドキュメントを見て:

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

私はsend to user segmentsend to a topicを使用する必要がありますどのような状況の下で伝えることはできません。

誰かがどちらかを使用して違いを指摘することができますか?先に感謝:)

答えて

2

使用するユーザーsegements

  • は通常、デバイスの特定および限定されたセットにプッシュ通知を送信します。
  • メッセージ配信は(私の経験では)ほとんど瞬間的です。また、私はGCMで以前のように絞りを観察していませんでした。

使用トピックス

  • トピックまたはパブリッシュ/サブスクライブ・メカニズムは、比較的大きな聴衆のために使用されている情報の種類はpublicです。例は天気とニュースです。
  • トピックは、あなたが唯一のFirebase Consoleを経由してユーザセグメントに通知を送信することができます
4

ユーザセグメント

  • のレイテンシ(メッセージの配信を絞ることもある)があります。 (here参照)。特定のターゲットに限定
  • docsからリンクされた):

    は、メッセージのターゲットを選択します。このダイアログには、アプリケーション/アプリケーションバージョン,デバイス言語、またはユーザーをとして選択するかどうかによって、ターゲットを絞り込むためのオプションが表示されます。

  • としてもすでにdocあなたがリンクに言及:

    あなたは事前に定義されたユーザーセグメントまたはFirebase解析で作成したカスタムaudiencesをターゲットにすることができます。

トピック必ずしも必要ではない

  • トークン/デバイス管理。
  • サブスクライバ数に制限はありません。
  • FCM APIを使用してトピックに送信できます。
  • クライアントアプリで簡単に購読/購読を解除できます。

IMHOあなたは物事を迅速かつ簡単にしたい場合は、トピックメッセージングで行きます。

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);セッションを閉じるのを忘れないでください。 これは私のためにうまくいった。

関連する問題