在Android上处理Firebase主题通知

时间:2017-05-23 12:30:19

标签: android firebase google-cloud-messaging firebase-cloud-messaging

我试图通过FCM服务发送推送通知。 在我的MainActivity中,我编写了这段代码:

Enter your name : abc
Enter marks of 1 subject : 98
Enter marks of 2 subject : 15
Enter marks of 3 subject : 45
Enter marks of 4 subject : 2
Enter marks of 5 subject : 2
Enter choice y for repeat : y
Enter your name : xyz
Enter marks of 1 subject : 55
Enter marks of 2 subject : 59
Enter marks of 3 subject : 68
Enter marks of 4 subject : 47
Enter marks of 5 subject : 59
Enter choice y for repeat : 
{'abc': [98, 15, 45, 2, 2], 'xyz': [55, 59, 68, 47, 59]}

为了订阅用户主题。

从后端我通过以下链接拨打FCM服务:https://fcm.googleapis.com/fcm/send

我传递了这个JSON:

   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();

                }
            }
        };

我收到了这个回复:

{  
   "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"
   }
}

但我的设备没有显示任何通知,如果我使用Firebase控制台和#34;用户细分"或者"单个设备" 。同样在Firebase控制台中也不起作用" topic"方式。

提前感谢您的回复。

1 个答案:

答案 0 :(得分:0)

有两种类型的FCM消息。

  1. 通知消息
  2. 数据讯息
  3. 在客户端,通知消息由FCM处理并自动显示在通知窗口中。如果您使用数据消息,您的应用程序需要处理收到的消息并创建通知。

    您问题中的样本有效负载是数据消息,因此它不会显示在通知中(我假设您没有进行任何处理)。通过FCM控制台发送的通知始终是通知消息,因此会自动显示这些消息。

    有关详细信息,请参阅this FCM page