几个月前,我在我的应用程序上实现了推送通知。 我的问题是我们必须在 AWS 上更改 firebase 证书,现在有很多推送通知失败。 我们将在周一推出更新。
我知道以下情况:
- 应用删除实例 ID
- 应用已在新设备上恢复
- 用户卸载/重新安装应用
- 用户清除应用数据
FirebaseInstanceIdService
被解雇,反过来onTokenRefresh()
被召唤。 但是,我的问题是,如果用户收到其应用程序的更新,该服务是否也被触发,更新是否等同于app is restored on a new device
?
这将解决推送失败,如果是这样,因为我在收到时向 AWS 注册令牌,
任何信息都会很棒
我不认为应用程序更新会导致Firebase创建新令牌。您可以使用此代码强制使用 Firebase:
FirebaseInstanceId.getInstance().deleteInstanceId();
FirebaseInstanceId.getInstance().getToken();
例如,您可以在主活动中执行此操作,并在完成后在共享首选项中保存布尔值,这样您就不会在每次启动时刷新令牌。
但是,我的问题是,如果用户收到其应用程序的更新,该服务是否也触发了,更新是否等同于在新设备上恢复应用程序?
不。应用在新设备上恢复意味着用户已升级到新设备。
您可能需要阅读此线程通过代码强制更改/更新 Firebase 通知令牌或实例 ID? 以生成新令牌。