TokenRefresh上的FirebaseInstanceIdService

时间:2017-07-28 09:51:37

标签: android amazon-web-services firebase push-notification firebase-cloud-messaging

几个月前我在我的应用上实施了推送通知。我的问题是我们必须在AWS上更改firebase证书,现在有很多推送通知失败。我们将于周一推出更新。

我知道在以下情况中:

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

FirebaseInstanceIdService被触发,然后onTokenRefresh()被调用。但是,我的问题是,如果用户收到其应用程序的更新,该服务是否也被触发,是否相当于app is restored on a new device的更新?

如果我在收到时向AWS注册令牌,这将解决推送失败,

任何信息都会很棒

2 个答案:

答案 0 :(得分:1)

我认为应用更新不会导致Firebase创建新令牌。您可以使用此代码强制使用Firebase:

        FirebaseInstanceId.getInstance().deleteInstanceId();
        FirebaseInstanceId.getInstance().getToken();

您可以在主Activity中执行此操作,并在完成后在共享首选项中保存布尔值,这样您就不会在每次启动时刷新令牌。

答案 1 :(得分:1)

  

但我的问题是,如果用户收到他们的应用程序的更新,该服务是否也被解雇,是否会在新设备上恢复相当于应用程序的更新?

不。在新设备上恢复应用程序意味着用户已升级到新设备。

您可能希望阅读此帖子Change/update Firebase notification token or instance id forcefully via code?以生成新令牌。