Firebase消息传递/凭据不匹配

Firebase消息传递/凭据不匹配,firebase,push-notification,firebase-cloud-messaging,firebase-admin,Firebase,Push Notification,Firebase Cloud Messaging,Firebase Admin,我试图使用Firebase向特定设备发送通知,但收到以下错误: {“r”:{“results”:[{“error”:{“code”:“messaging/mismatched credential”,“message”:“用于验证此SDK的凭据没有向与提供的注册令牌对应的设备发送消息的权限。请确保凭据和注册令牌都属于同一个Firebase项目。”}}],“canonicalRegistrationTokenCount”:0,“failureCount”:1,“successCount”:0,“m

我试图使用Firebase向特定设备发送通知,但收到以下错误:

{“r”:{“results”:[{“error”:{“code”:“messaging/mismatched credential”,“message”:“用于验证此SDK的凭据没有向与提供的注册令牌对应的设备发送消息的权限。请确保凭据和注册令牌都属于同一个Firebase项目。”}}],“canonicalRegistrationTokenCount”:0,“failureCount”:1,“successCount”:0,“multicastId”:5165415028752234000}


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


任何帮助都会很好,谢谢!

此错误消息可以在中找到

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


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

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

我也遇到了同样的问题。我花了两天时间才发现需要通过google云平台启用Firebase云消息API。如果不启用它,还会产生错误“凭据不匹配”“。我真希望错误消息能更具体。

在谷歌云平台中启用Firebase云消息API

请注意,我无法在API&Services仪表板部分找到它,但我必须浏览API库

启用后,您可以在中找到它:
谷歌云平台>导航菜单>API和服务>仪表板>Firebase云消息API

直接链接:


归功于。

但我要发送到的应用程序在同一个项目中?我无从得知。您必须使用来自同一项目的凭据进行初始化。这是只有你才能访问的。我使用的是同一个项目的服务帐户。我不明白为什么它不起作用。我只能说,你应该仔细检查你的所有数据,确保你的服务帐户仍然有效。仔细检查后,如果仍然存在问题,请联系Firebase支持。你找到解决办法了吗?我也有同样的问题,谢谢!很烦@Martin Z如何实现这一点?1)从项目的Firebase控制台转到设置服务帐户。2) 点击谷歌云平台的服务账户链接,转到相关的谷歌云项目3)从左边的汉堡包菜单转到API和服务4)查找“Firebase云消息传递”(不要将其与“云消息传递”混淆)5)这里不要求启用API。我的项目在没有启用GCP的api的情况下工作。嗨,Joe,我也面临同样的问题。但我没明白你的意思。你能详细解释一下吗?我也遇到了同样的问题,那就是Android studio,它在不同版本之间缓存JSON文件,如果不首先清理构建项目,我会错误地使用development google-services.JSON文件的次数!