客户端未收到主题服务器端的 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 通知的主要内容,如果未能解决你的问题,请参考以下文章
通过 FCM 发送时未收到推送通知,但在 IOS 上通过 APN 发送时收到
Cordova Android 应用程序不接收来自服务器端的 FCM 通知