Javascript Firebase FCM错误:';无效注册';
我目前正试图使用Javascript Firebase FCM错误:';无效注册';,javascript,node.js,firebase,firebase-cloud-messaging,Javascript,Node.js,Firebase,Firebase Cloud Messaging,我目前正试图使用FCM借助Firebase Cloud Functions向设备组发送PushNotification,但一旦发送通知,它将返回代码200,但失败: SUCCESS response= { multicast_id: 8834986220110966000, success: 0, failure: 1, canonical_ids: 0, results: [ { error: 'InvalidRegistration' } ] } 这是我用来发送此通知的代码。。。我错过了
FCM
借助Firebase Cloud Functions
向设备组发送PushNotification
,但一旦发送通知,它将返回代码200
,但失败:
SUCCESS response= {
multicast_id: 8834986220110966000,
success: 0,
failure: 1,
canonical_ids: 0,
results: [ { error: 'InvalidRegistration' } ]
}
这是我用来发送此通知的代码。。。我错过了什么
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);
});
如果JSON值title
,body
,subject
,message
是字符串
,那么从云函数向设备组发送消息就更容易了。使用。示例代码和说明在中
我认为您当前的方法失败了,因为groupId
中提供的组通知键有问题。它应该是创建设备组时返回的字符串键值。中列出了错误代码。对于200/残疾登记,它说:
检查传递给服务器的注册令牌的格式。
确保它与客户端应用程序接收的注册令牌匹配
从注册到Firebase通知。不要截断或添加
附加字符
注册令牌绑定到特定的发送者组。当客户端应用注册FCM时,它必须指定允许哪些发件人发送消息。向客户端应用发送消息时,应使用其中一个发件人ID
您需要做的就是添加一个带有发件人id的http头“project\u id”。在我的例子中,我正在向topic(topics/my topic
)发送通知。我在主题的开头缺少了前缀/
,所以我得到了相同的问题。所以主题应该是/topics/my topic
也许这有帮助 InvalidRegistration
仅表示令牌无效或过期。您可以卸载应用程序,然后重新安装并获取新令牌,然后尝试使用该令牌。这肯定会解决你的问题
你可以阅读更多内容。这并不能回答问题,我也会以与node JS后端完全不同的方式收到相同的错误。我也有同样的问题,fcm从移动应用程序中提供的令牌在服务器上给出了此错误,我使用FirebaseMessaging(3.4.0)当发送到/topics/my-topic时,我们应该在android上的何处收听此消息。我们应该用我的话题吗