Firebase FCM MismatchSenderID

Ton*_*Ton 2 android firebase firebase-cloud-messaging

我的Android客户端应用程序安装在多个设备上.我还有我的服务器应用程序,向这些应用程序发送消息.问题是有些设备接收消息而其他设备没有.将消息发送到这些设备时,我收到错误" MismatchSenderId ".

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

任何帮助的原因?

AL.*_*AL. 6

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

注册令牌与某组发件人绑定.当客户端应用程序注册FCM时,它必须指定允许哪些发件人发送消息.在向客户端应用程序发送消息时,您应该使用其中一个发件人ID.如果您切换到其他发件人,现有的注册令牌将无法使用.

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

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

  • 新令牌>仅接收来自> Firebase Project(第二)的消息

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

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

  • New Tokens>现在收到消息> Firebase Project(2nd)导入的Google Project(1st)

希望有道理.


从讨论中提到很好:

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

  • 在讨论期间链接了一个帖子