应用更新时是否刷新了FCM令牌?

时间:2016-12-26 10:48:52

标签: android firebase-cloud-messaging

我在我的Android应用中使用FCM进行推送通知。我有以下类来获取fcm标记。

public class MyFirebaseInstanceIdService extends FirebaseInstanceIdService {
    @Override
    public void onTokenRefresh() {
        String refreshedToken = FirebaseInstanceId.getInstance().getToken();
    }
}

安装我的应用程序并且我能够获取令牌时,这是正确调用的。但是我不确定我的应用程序是否已更新(从Play商店),然后将调用此方法。文档只是说只要令牌发生变化就会调用该方法。但更新应用程序可能不会更改令牌。

3 个答案:

答案 0 :(得分:14)

正如评论部分中@Dharmitabhatt在post中所指出的,当应用更新时,注册令牌会被引用。

每当在Android中刷新令牌时,都应该调用onTokenRefresh()方法:

  

系统确定需要刷新令牌时调用。应用程序应调用getToken()并将令牌发送到所有应用程序服务器。

     

这不会经常调用,需要进行密钥轮换并处理由于以下原因引起的实例ID更改:

     
      
  • 应用删除实例ID
  •   
  • 应用程序已在新设备上恢复
  •   
  • 用户卸载/重新安装应用
  •   
  • 用户清除应用数据
  •   
     

系统将限制所有设备上的刷新事件,以避免使用令牌更新使应用程序服务器过载。

因此,您说更新应用程序并不一定会刷新令牌是正确的。

答案 1 :(得分:3)

注册令牌可能会在以下情况下发生变化:

  • 该应用会删除实例ID

  • 该应用已在新设备上恢复

  • 用户卸载/重新安装应用

  • 用户清除应用数据。

您可以从中找到更多信息 http://prntscr.com/dnzq9l

https://firebase.google.com/docs/cloud-messaging/android/client

答案 2 :(得分:0)

安装/清除数据 - 生成新令牌。

从Play商店更新 - 令牌保持不变。

如果你想调用onTokenRefreshed(),你应该手动完成。

点击here了解详情。

相关问题