Firebase 在调用 getToken(true) 后不更新令牌

Firebase doesn't update token after call getToken(true)

所以,我正在使用以下组合:

//retrieve actual token
FirebaseInstanceId.getInstance().instanceId.addOnSuccessListener

//force delete instance and then get a new token
FirebaseInstanceId.getInstance().deleteInstanceId();

但两者都已弃用,现在我正在尝试结合使用

//retrieve actual token
FirebaseMessaging.getInstance().token.addOnCompleteListener 

//force get new token
FirebaseInstallations.getInstance().getToken(true).addOnSuccessListener

实现相同的行为,但它不起作用。

当我调用 FirebaseMessaging.getInstance() 时,它给了我一个不同的标记 FirebaseInstallations.getInstance().getToken

例如:

在应用程序启动时,FirebaseMessaging.getInstance().token 给我令牌:

abcabcabcabcabcabcabcabc...

然后,当我调用 FirebaseInstallations.getInstance().getToken(true) 时,我收到令牌

123123123123123123123123123...

我关闭应用程序,再次打开,然后 FirebaseMessaging.getInstance().token 给我相同的旧令牌:

abcabcabcabcabcabcabcabc...

FirebaseInstanceId 与消息令牌不同。您应该使用 Firebase.messaging.token 获取当前令牌,并使用 Firebase.messaging.deleteToken() 强制获取新令牌。

或没有 ktx 扩展:FirebaseMessaging.getInstance().getToken()FirebaseMessaging.getInstance().deleteToken()