Firebase FCM错误:'InvalidRegistration'

时间:2017-05-17 22:06:12

标签: javascript node.js firebase firebase-cloud-messaging

我目前正尝试在PushNotification的帮助下使用Device GroupFCM发送Firebase Cloud Functions但是一旦发送通知,它将返回代码{{ 1}}但失败了:

200

以下是我用来发送此通知的代码...我错过了什么?

SUCCESS response= {
multicast_id: 8834986220110966000,
success: 0,
failure: 1,
canonical_ids: 0,
results: [ { error: 'InvalidRegistration' } ] 
}

JSON值const options = { method: 'POST', uri: 'https://fcm.googleapis.com/fcm/send', headers: { 'Authorization': 'key=' + serverKey, }, body: { to: groupId, data: { subject: message }, notification: { title: title, body: body, badge: 1, }, content_available: true }, json: true }; return rqstProm(options) .then((parsedBody) => { console.log('SUCCESS response=', parsedBody); }) .catch((err) => { console.log('FAILED err=', err); }); titlebodysubjectmessage

4 个答案:

答案 0 :(得分:4)

就我而言,我正在向主题(“ topics/my-topic”)发送通知。我没有在主题的开头添加/,所以遇到了同样的问题。因此主题应为/topics/my-topic

这可能有帮助!

答案 1 :(得分:3)

有一种更简单的方法可以从云功能向设备组发送消息。使用admin.messaging().sendToDeviceGroup()。示例代码和说明位于this guide

我认为您当前的方法失败了,因为groupId中提供的群组通知密钥有问题。它应该是您在创建设备组时返回的字符串键值。错误代码列在this table中。对于200 / InvalidRegistration,它说:

  

检查传递给服务器的注册令牌的格式。   确保它与客户端应用程序收到的注册令牌相匹配   从注册Firebase通知。不要截断或添加   其他角色。

答案 2 :(得分:0)

注册令牌与某组发件人绑定。当客户端应用程序注册FCM时,它必须指定允许哪些发件人发送消息。在向客户端应用程序发送消息时,您应该使用其中一个发件人ID。

您需要做的是添加一个http标题'project_id'和您的发件人ID。

答案 3 :(得分:-3)

for (let star of stars) { star = new Star() } 仅表示令牌无效或已过期。您可以卸载该应用程序,然后重新安装并获取一个新令牌,然后尝试使用该令牌。这肯定会解决您的问题。

您可以阅读更多here

稍后谢谢!