火力地堡 messaging/mismatched-credential

Firebase messaging/mismatched-credential

我正在尝试使用 Firebase 向特定设备发送通知,但出现以下错误:

{"r": {"results":[{"error":{"code":"messaging/mismatched-credential","message":"The credential used to authenticate this SDK does not have permission to send messages to the device corresponding to the provided registration token. Make sure the credential and registration token both belong to the same Firebase project."}}],"canonicalRegistrationTokenCount":0,"failureCount":1,"successCount":0,"multicastId":5165415028752234000}}

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

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

可以在 documentation for FCM 中找到此错误消息。

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

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

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

我遇到了同样的问题。我花了两天时间才弄清楚,我需要通过 google 云平台启用 Firebase Cloud Messaging API。如果不启用它,它还会产生错误 "mismatched-credential"。我真的希望错误消息可以更具体。

在 Google 云平台中启用 Firebase 云消息传递 API。

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

启用后,您可以在以下位置找到它:
Google 云平台 > 导航菜单 > API 服务和服务 > 仪表板 > Firebase 云消息传递 API

直接Link:https://console.cloud.google.com/apis/api/fcm.googleapis.com/overview

感谢 niocncn