firebase FCM推送通知:发送者ID不匹配

bxgwgixi  于 2023-04-07  发布在  其他
关注(0)|答案(7)|浏览(282)

日安
我正在尝试使用FCM的URL发送消息:
https://fcm.googleapis.com/fcm/send
,其标头为

Authorization value of **key:*Key from Firebase Console***
    Content-Type: **application/json**

该机构包括:

{
       "to" : "MyKey generated",
       "notification" : {
       "body" : "Hey",
       "title" : "Hey"
    }  
 }

但我总是得到的结果是这样的:

{
        "multicast_id": 7942550122547405787,
        "success": 0,
        "failure": 1,
        "canonical_ids": 0,
        "results": [
            {
               "error": "MismatchSenderId"
           }
      ]
    }

我得到的服务器密钥来自这里:
Server Key
我的URL参考是FCM服务器中的文档。
我正在Postman中测试这个。我错过了什么吗?谢谢

crcmnpdw

crcmnpdw1#

根据文件
注册令牌绑定到特定的发件人组。当客户端应用注册FCM时,它必须指定允许哪些发件人发送消息。在向客户端应用发送消息时,您应使用其中一个发件人ID。如果切换到其他发件人,现有的注册令牌将不起作用。
因此,听起来您试图将推送通知发送到与发送方ID没有关联的ID。您应该验证您在正确的位置具有正确的密钥

rn0zuynd

rn0zuynd2#

听起来你的Android应用上的Google服务配置不正确。
登录到Firebase控制台,打开您的项目(点击齿轮图标)。在General选项卡下,向下滚动到“Download the latest config file”并点击按钮下载google-services.json(其中应包含正确的项目和发送者ID)
将此消息发送给您的移动的开发人员以包含在应用程序中,一旦应用程序发送了有效的推送令牌,请尝试再次发送。

6qftjkof

6qftjkof3#

标题必须是这样的

Content-Type:application/json
Authorization:key=AIzaSyZ-1u...0GBYzPu7Udno5aA

检查服务器密钥的有效性

api_key=YOUR_SERVER_KEY

curl --header "Authorization: key=$api_key" \
       --header Content-Type:"application/json" \
       https://fcm.googleapis.com/fcm/send \
       -d "{\"registration_ids\":[\"ABC\"]}"

如果一切正常,则需要重新检查senderId

zvms9eto

zvms9eto4#

这个错误是由于无效的令牌我解决了这个,输入令牌正确

wz3gfoph

wz3gfoph5#

通过POSTMAN发布FCM授权:key=YOUR-SERVER-KEY

内容类型:应用程序/JSON

现在单击Body,然后选择Row并添加值作为对象,如下所示
确保行位于JSON(application/json)

{
"to": "cpa8cZPjq-w:APA91bF122f1Rnhu9v47bL
YMajaNTHAIU5SzItDwTy9o2MCIveG0PlK78VPvp3d
CqjwnUKZ4
ngi1trSyM3_aXttW62iknFfbPGtjRLhZr6wq-3qFdboz8gzdOGPz**********",

"notification": {

"body": "Hello",
"title": "This is test message."
}
}

POST /fcm/send HTTP/1.1
主机:fcm.googleapis.com

e4eetjau

e4eetjau6#

这个问题仅仅意味着服务器和客户端使用了2个不同的firebase项目。它很可能发生在你不小心按错了键,混淆了你的开发,阶段或生产环境。
修复步骤:
1.检查您的服务器,确保Firebase admin / FCM中的键与您的目标环境匹配
1.检查您的客户端,确保它使用相同的目标环境生成推送令牌
您可以通过在firebase控制台中使用生成的推送令牌发送测试推送通知来确认服务器上的客户端环境。只有在正确的Firebase项目中使用了推送令牌,您才会收到测试通知。

4zcjmb1e

4zcjmb1e7#

从Firebase控制台的General选项卡下载 google-services.jsonGoogleService-info.plist 文件解决了这个问题。

不要下载创建应用程序时附带的文件。可能会有不匹配发件人ID的机会。因此,最好的方法是从常规选项卡下载文件,并将其放置在相应的文件夹中。

相关问题