1

FCMサービスを通じてプッシュ通知を送信しようとしています。トピックにユーザーをサブスクライブするためにAndroidでFirebaseのトピックを通知する

mRegistrationBroadcastReceiver = new BroadcastReceiver() { 
      @Override 
      public void onReceive(Context context, Intent intent) { 

       // checking for type intent filter 
       if (intent.getAction().equals(Config.REGISTRATION_COMPLETE)) { 
        // gcm successfully registered 
        // now subscribe to `global` topic to receive app wide notifications 
        FirebaseMessaging.getInstance().subscribeToTopic(Config.TOPIC_GLOBAL); 

        displayFirebaseRegId(); 

       } else if (intent.getAction().equals(Config.PUSH_NOTIFICATION)) { 
        // new push notification is received 

        String message = intent.getStringExtra("message"); 

        Toast.makeText(getApplicationContext(), "Push notification: " + message, Toast.LENGTH_LONG).show(); 

       } 
      } 
     }; 

: は私のMainActivityでは、私はこのコードを記述します。バックエンドから

私は、このリンクでFCMサービスへの呼び出しますhttps://fcm.googleapis.com/fcm/send

私はこのJSONを渡している:

{ 
    "to":"/topics/global", 
    "data":{ 
     "title":"test", 
     "is_background":false, 
     "message":"testmessage", 
     "image":"", 
     "payload":{ 
     "team":"Test", 
     "score":"5.6" 
     }, 
     "timestamp":"2017-05-23 11:55:35" 
    } 
} 

を、私はこの応答を取得:

{\"message_id\":8863205901902209389} 

しかし、私のデバイスは通知を表示せず、Firebaseコンソールを「ユーザーセグメント」または「単一デバイス」で使用すると実行されません。また、Firebaseコンソールでは "トピック"の仕方で動作しません。

ご回答ありがとうございます。

+2

送信する完全なJSON文字列ですか? "to": "/ topics/topicName"プロパティはどこにありますか?メッセージを送信するトピックを指定するべきではありませんか? – Eran

+1

こんにちはSlaiv206。それはあなたが使っている完全なペイロードですか? 'to'パラメータが表示されません。 –

+1

質問を編集しましたが、とにかくトピックを指定しましたが動作していません – Slaiv206

答えて

0

FCMメッセージには2種類あります。

  1. 通知メッセージ
  2. データメッセージクライアント側で

、通知メッセージは、FCMによって処理され、自動的に通知ウィンドウに表示されます。データメッセージを使用している場合は、受信したメッセージを処理して通知を作成する必要があります。

質問のサンプルペイロードはデータメッセージであるため、通知では表示されません(あなたは何も処理していないと仮定します)。 FCMコンソールから送信される通知は常に通知メッセージなので、自動的に表示されます。

詳細については、this FCM pageを参照してください。

+1

私も通知を試みたが動作しません – Slaiv206

+0

あなたは、ユーザーセグメントと単一のデバイスメッセージを受け取ったと述べましたので、 'if(intent.getAction()。equals(Config.REGISTRATION_COMPLETE))'のコードがさえ実行される。おそらくあなたはトピックに全く加入していないでしょう。それを確認しましたか? – Vijay

関連する問題