onTokenRefresh不会在签名的APK中调用,如果安装的先前版本的应用程序没有实现FCM

Dha*_*att 5 android firebase firebase-cloud-messaging

我在Android应用程序的第6版中实现了FCM.onTokenRefresh() 如果以前没有安装我的应用程序,则会被调用 但是当我的应用程序与之前的版本(没有实施FCM)已经安装并且我用版本6更新它时,那么onTokenRefresh()就不会被调用.

我是否需要从Play商店卸载以前的应用版本,然后安装新版本?

AL.*_*AL. 2

我认为这仍然应该是预期的行为。第一次安装应用程序时onTokenRefresh()将被调用。不是每次都更新。因此,也许您可​​以手动强制执行本文中提到的操作:onTokenRefresh()

如果您想手动强制onTokenRefresh(),您可以创建一个 IntentService 并删除令牌实例。然后,当您调用 getToken 时,该onTokenRefresh()方法将再次被调用。

  • 当您首次启动使用 FCM 的应用程序时,会生成令牌。如果您稍后启动服务,您可能会错过“onTokenRefresh()”调用。但解决方案很简单:调用“FirebaseInstanceID.getToken()”,如[检索当前注册令牌](https://firebase.google.com/docs/cloud-messaging/android/client#retrieve-the -current-registration-token)并按照您通常在“onTokenRefresh()”中执行的方式处理令牌。如果令牌尚未生成,它将返回“null”。但在这种情况下,一旦令牌准备好,您的“onTokenRefresh()”就会被调用。 (2认同)