当针对多个 registration_id 时,FCM 返回单个注册 ID 的响应
Posted
技术标签:
【中文标题】当针对多个 registration_id 时,FCM 返回单个注册 ID 的响应【英文标题】:FCM returning response for single registration id when targeted for multiple registration_ids 【发布时间】:2016-07-13 06:03:52 【问题描述】:我正在编写 FCM 实现的应用服务器端,它将向多个设备发送特定消息。
我使用registration_ids
作为键,JsonArray
使用多个收件人,但是返回的响应仅显示一个收件人,如下所示
"multicast_id":7185150746202793615,"success":0,"failure":1,"canonical_ids":0,"results":["error":"InvalidRegistration"]
我不确定是否在 Firebase 控制台中设置任何属性以启用多个注册 ID 接受。
下面是请求json:
"registration_ids":[
[
"eU6HKx7QRMc:APA91bEIoJtHmTFz_MzUgbMkoZvwdlXzrMDbCB1via_fV16MRF_Xc0C0KkkVA1diR8QgzRdQtkCy-6JDd5it_NSaiIbIlBDDi0g2GFkmrE4ESMi43dBODBePQrzFLqiKeDmX26DkXB8i",
"FERTeU6HKx7QRMc:APA91bEIoJtHmTFz_MzUgbMkoZvwdlXzrMDbCB1via_fV16MRF_Xc0C0KkkVA1diR8QgzRdQtkCy-6JDd5it_NSaiIbIlBDDi0g2GFkmrE4ESMi43dBODBePQrzFLqiKeDmX26DkXB8i"
]
],
"notification":
"title":"Hello FCM",
"text":"Notification details"
,
"time_to_live":3600,
"priority":"HIGH"
这个请求的响应是
"multicast_id":7697036511101523125,
"success":0,
"failure":1,
"canonical_ids":0,
"results":[
"error":"InvalidRegistration"
]
【问题讨论】:
返回的响应只显示给一个收件人你为什么这么认为? 返回的结果只有一个响应(size=1),成功和失败的总和也是1。 能否请您发布您从服务器端发送推送通知的代码? @Dhruv,我使用 Java 作为服务器端语言。 【参考方案1】:问题在于这个请求的 Json 格式。应该是
"registration_ids"[ "eU6HKx7QRMc:APA91bEIoJtHmTFz_MzUgbMkoZvwdlXzrMDbCB1via_fV16MRF_Xc0C0KkkVA1diR8QgzRdQtkCy-6JDd5it_NSaiIbIlBDDi0g2GFkmrE4ESMi43dBODBePQrzFLqiKeDmX26DkXB8i",
"FERTeU6HKx7QRMc:APA91bEIoJtHmTFz_MzUgbMkoZvwdlXzrMDbCB1via_fV16MRF_Xc0C0KkkVA1diR8QgzRdQtkCy-6JDd5it_NSaiIbIlBDDi0g2GFkmrE4ESMi43dBODBePQrzFLqiKeDmX26DkXB8i" ],
"notification":
"title":"Hello FCM",
"text":"Notification details"
,
"time_to_live":3600,
"priority":"HIGH"
额外的方括号 ([ ]) 导致了问题。
【讨论】:
以上是关于当针对多个 registration_id 时,FCM 返回单个注册 ID 的响应的主要内容,如果未能解决你的问题,请参考以下文章
“registration_ids”字段不能为空(laravel 和 Firebase)