Firebase google-services.json更改不再接收推送通知

时间:2020-02-28 01:06:21

标签: android firebase push-notification firebase-cloud-messaging

最初,我有一个正在运行的应用程序,并成功接收了推送通知。我在firebase中重组了我们的项目,我们已经删除了该应用并将其重新添加到控制台(在同一项目中)。我重新下载了google-services.json文件,并注意到一些变化,例如mobilesdk_app_id对于我正在测试的特定应用程序包而言。

如果我使用新更改进行全新安装,则可以成功收到推送通知。但是,如果我安装了带有旧google-services.json的先前版本并进行升级而没有先卸载,则不会收到任何通知。我还看到升级后,在FirebaseMessagingService -> onNewToken方法中没有得到新令牌的回调。

是否可以调试此问题?由于json文件已更改,我是否可以强制Firebase给我新的令牌?我正在从控制台发送这些通知,并以正确的应用为目标。我对于为什么可以使用新的json文件进行全新安装而不能从以前的版本进行升级感到困惑。

1 个答案:

答案 0 :(得分:0)

升级应用不会触发生成新的 Firebase 设备令牌。因此,旧令牌是使用旧的 google-services.json 文件生成的,然后永远不会生成新令牌。

您只需卸载应用程序并重新安装即可解决此问题,这会使用新的 google-services.json 文件生成新令牌。

但如果您不想要求您的用户卸载并重新安装您的应用程序,您可以使用 FirebaseInstanceId.getInstance().deleteInstanceId(); 后跟 FirebaseInstanceId.getInstance().getToken(); 以强制生成新令牌。您必须在与主线程不同的线程中执行此操作。按照 this stackoverflow answer

上的说明进行操作