【发布时间】:2019-06-19 02:11:52
【问题描述】:
我正在尝试使用 Firebase 将推送通知从一台设备发送到另一台设备(它们是两个不同的项目)。 我正在使用 POST 通过 okhttp3 库调用 API。 如果我尝试使用 curl 可以发送通知,但通过 android 我收到以下错误:
{"multicast_id":XXXXXXXX,"success":0,"failure":1,"canonical_ids":0,"results":[{"error":"MismatchSenderId"}]}
在 Android 中是否有一些元数据与 rest 调用一起发送? 怎么发送
这是 curl 调用(工作正常)
curl -H "Content-type: application/json" -H "Authorization:key=AXXXXX" -X POST -d '{"data":{"info":"abc"},"to":" DEV-TOKEN-XXX"}' https://fcm.googleapis.com/fcm/send
在 Android 中,我只是复制了相同的场景设置标头,正文 ecc 与 okhttp3
【问题讨论】:
-
FWIW:您实际上不应该将服务器身份验证 api 密钥分发给您的客户端。所以只有服务器有足够的权限向设备/主题发送消息。但您可以将上游消息发送回服务器。见firebase.google.com/docs/cloud-messaging/android/upstream
-
老实说,我不建议给客户端足够的权限来向另一台设备发送通知。让服务器处理它(例如:设备 A 连接到具有所有凭据的服务器,然后向设备 B 发送通知)
-
感谢@herbert 和@ZUNJAE,你说得对,我会考虑在服务器中实现它。顺便说一句,在这种情况下,我仍然想尝试从客户端发送通知以进行测试。
标签: android firebase firebase-notifications