Firebase FCM 不匹配发件人 ID



我的客户端应用程序在多个设备上安装了Android。 我也有我的服务器应用程序,可以向这些应用程序发送消息。 问题是某些设备会收到消息,而其他设备则不会。 向这些设备发送消息时,我收到错误">不匹配发件人 ID"。

我划分了问题,因此我打开 firebase 控制台并向我的应用发送通知(我有每个应用的令牌)。因此,使用控制台应用程序,我在使用服务器的相同设备上收到错误。但正如我所说,每台设备都使用相同的应用程序。

有什么帮助吗?

首先,我要指出MismatchSenderId错误的描述:

注册令牌绑定到特定的一组发件人。当客户端应用注册 FCM 时,它必须指定允许哪些发件人发送消息。向客户端应用发送消息时,应使用这些发件人 ID 之一。如果切换到其他发件人,则现有注册令牌将不起作用。

根据我们的讨论,有人指出您创建了一个新的Firebase项目,而不是导入用于GCM的Google项目。从新项目中,google-services.json被生成并用于应用程序,这导致新令牌与新项目的发件人ID相关联。要正确可视化它:

  • GCM 注册令牌>仅接收来自 Google Project>的消息(1st)

  • 新令牌>仅接收来自 Firebase> 项目(第 2 版)的消息

作为解决方案,我建议您将Google项目导入Firebase控制台,从该项目生成google-services.json,并将应用程序中的Google-services.json替换为该应用程序,它将应用程序与该(正确的)项目相关联。这反过来又创建了现在与您的第一个项目关联的代币。

  • GCM 注册令牌>仅接收> Google Project 的消息(第 1 个)

  • 新令牌>现在接收消息>Firebase Project (2nd) 导入的谷歌项目 (1st)

希望这是有道理的。


值得一提的是:

  • 应用更改后,您提到错误仍然存在,但这是一个不同的问题,只需使用服务器密钥即可修复。

  • 在讨论期间链接了帖子。

支持@AL的答案,基本上您需要在所有设备上卸载该应用程序并重新安装该应用程序,以便所有设备都收到与新连接的Firebase项目数据库相对应的新令牌。

需要在 Google 控制台中启用以下 API (https://console.cloud.google.com/)

Firebase Cloud Messaging API 云消息传递

然后您的发件人 ID 将被识别

相关内容

  • 没有找到相关文章

最新更新