Firebase消息传递/不匹配的凭证

Joe*_*tto 9 push-notification firebase firebase-cloud-messaging firebase-admin

我正在尝试将通知发送到具有Firebase的特定设备,但出现以下错误:

{“ r”:{“结果”:[{“错误”:{“代码”:“消息/不匹配的凭据”,“消息”:“用于验证此SDK的凭据无权将消息发送到与提供的注册令牌相对应的设备。请确保凭据和注册令牌都属于同一Firebase项目。“}}],” canonicalRegistrationTokenCount“:0,” failureCount“:1,” successCount“:0,” multicastId“: 5165415028752234000}}

我不确定是什么原因造成的,我正在使用与项目关联的服务帐户以及正确的设备ID。

任何帮助将是巨大的,谢谢!

Dou*_*son 9

此错误消息可以在FCM文档中找到。

这意味着您已使用与设备注册令牌不同的项目凭据初始化 Admin SDK。

换句话说:出于安全原因,您不能简单地将消息发送到您想出的任何设备令牌。您只能通过同一项目中的应用程序向设备令牌发送消息。


Joe*_*tto 8

问题出在我的google-services.json. 我的应用程序使用两个项目并默认为第一个项目。添加第二个项目 json 文件最终解决了这个问题,因为它现在可以将令牌发送到正确的项目。

  • 我遇到了同样的问题,这是 Android studio 的问题,如果不是首先干净地构建项目,它会跨构建缓存 JSON 文件 (3认同)

小智 6

我遇到了同样的问题。我花了两天时间才知道需要通过Google Cloud Platform启用Firebase Cloud Messaging API。如果不启用它,还会产生错误“凭据不匹配”。我真的希望错误消息可以更具体。

  • @Martin Z我该如何实现? (4认同)
  • 1) 从项目的 Firebase 控制台转到设置服务帐户。2) 单击 Google 云平台的服务帐户链接转到相关的 google 云项目 3) 从左侧汉堡菜单转到 API 和服务 4) 找到“Firebase Cloud Messaging”(不要将其与“Cloud Messaging”混淆) ) 5) 启用API (2认同)