我尝试了一个示例代码来测试带有 Firebase 的推送通知系统,它运行良好,除了一件事。
如果我尝试使用设备 token 从 Firebase 控制台发送通知,该通知会显示在设备中。
如果我尝试使用我的主题
topik
从 Firebase 控制台发送通知,所有通知都会显示在所有设备中。如果我尝试从我的网页或 postman 发送通知,使用设备 token ,通知显示在设备中。
如果我尝试从我的网页或 postman 发送通知,使用我的主题
topik
,NOTHING HAPPENS。
这是一个调用示例:
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
方法,但没有任何反应。
有什么想法吗?
最佳答案
您要发送数据消息还是通知消息?
参见:https://firebase.google.com/docs/cloud-messaging/concept-options#notifications_and_data_messages
如果要发送notification-messages(通知控制台发送的消息类型)
你在问题中写的有效载荷是错误的。尝试用 notification
替换 data
:
Body:
{
"to": "/topics/topik",
"notification": {
"title": "Hello",
"body": "This is a Firebase Cloud Messaging Topic Message!"
}
}
关于android - 客户端未收到主题服务器端的 FCM 通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41105671/