在 Android 上处理 Firebase 主题通知



我正在尝试通过FCM服务发送推送通知。在我的主活动中,我编写了以下代码:

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

为了订阅用户的主题。

从后端,我通过此链接调用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控制台中,"主题"方式不起作用。

提前感谢您的任何回复。

有两种类型的 FCM 消息。

  1. 通知消息
  2. 数据消息

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

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

有关此内容的更多详细信息,请参阅此 FCM 页面。

相关内容

  • 没有找到相关文章

最新更新