Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Firebase FCM错误:';无效注册';_Javascript_Node.js_Firebase_Firebase Cloud Messaging - Fatal编程技术网

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上的何处收听此消息。我们应该用我的话题吗