客户端未收到主题服务器端的 FCM 通知

Posted

技术标签:

【中文标题】客户端未收到主题服务器端的 FCM 通知【英文标题】:FCM notification with topic server side not received on client 【发布时间】:2016-12-12 16:52:15 【问题描述】:

我尝试了一个示例代码来测试带有 Firebase 的推送通知系统,它运行良好,除了一件事。

如果我尝试使用设备令牌从 Firebase 控制台发送通知,通知会显示在设备中。

如果我尝试使用我的主题 topik 从 Firebase 控制台发送通知,则所有通知都会显示在所有设备中。

如果我尝试使用设备令牌从我的网页或postman 发送通知,通知会显示在设备中。

如果我尝试从我的网页或 postman 发送通知,使用我的主题 topik什么都不会发生

这是一个示例调用:

link: https://fcm.googleapis.com/fcm/send
POST method

Header field:
Content-Type : application/json
Authorization : key=MY_SERVER_KEY (the new one)

Body:

    "to": "/topics/topik",
    "data": 
        "title": "This is a Firebase Cloud Messaging Topic Message!",
        "content-text": "This is a Firebase Cloud Messaging Topic Message!"
    

Body:

    "to": "/topics/topik",
    "data": 
        "message": "This is a Firebase Cloud Messaging Topic Message!"
    

发送操作的结果是这样的


  "message_id": 7150560334538835864 (SUCCESS!)

但任何设备都没有收到通知。我尝试调试onReceive 方法,但没有任何反应。

有什么想法吗?

【问题讨论】:

您的客户端设备订阅了该主题吗?您的问题中没有任何内容表明它有。 firebase.google.com/docs/cloud-messaging/android/… 是的。所有客户都订阅了该主题。事实上,如果我尝试从 Firebase 控制台向该主题发送通知,一切正常。 【参考方案1】:

您是在尝试发送数据消息还是通知消息? 见:https://firebase.google.com/docs/cloud-messaging/concept-options#notifications_and_data_messages

如果您要发送通知消息(通知控制台发送的消息类型) 您在问题中编写的有效负载是错误的。尝试将data 替换为notification

Body:

    "to": "/topics/topik",
    "notification": 
        "title": "Hello",
        "body": "This is a Firebase Cloud Messaging Topic Message!"
    

【讨论】:

以上是关于客户端未收到主题服务器端的 FCM 通知的主要内容,如果未能解决你的问题,请参考以下文章

应用关闭或被杀时未收到 Android FCM 通知

FCM 未收到通知消息

通过 FCM 发送时未收到推送通知,但在 IOS 上通过 APN 发送时收到

Cordova Android 应用程序不接收来自服务器端的 FCM 通知

如何跟踪FCM推送通知发送表单服务器端或Rest客户端? [重复]

FCM iOS 项目未收到通知 - FCM 控制台显示成功但设备未收到