我有一个安卓应用程序,目前正在部署firebase通知服务。与之关联的google-services.json文件有错误的条目。我修复了.json文件,firebase服务现在可以像往常一样为新安装的应用程序工作。但对于当前用户来说,它不起作用(因为它仍在使用旧的令牌(。
当系统确定需要刷新令牌时调用。应用程序应该调用getToken((并将令牌发送到所有应用程序服务器。
这不会被频繁调用,它是密钥旋转和处理实例ID更改所必需的,原因是:
- 应用程序删除实例ID
- 应用程序在新设备上还原
- 用户卸载/重新安装应用程序
- 用户清除应用程序数据
系统将在所有设备上限制刷新事件,以避免应用程序服务器因令牌更新而过载。
我尝试以编程方式删除instanceId(所以我得到了一个新的令牌(;它被删除(没有抛出异常(,但新的令牌与旧的令牌相同。
更改google-services.json不是应该自动触发令牌更改吗?
如何在不为当前用户重新安装应用程序的情况下解决此问题(更新时(?
我正在使用最新版本的Firebase和谷歌服务(在Gradle(。
您可以通过将新的apk提交到play商店来更新您的应用程序。因此,在老客户更新你的apk后,老客户将被新的apk和新的google-services.json文件所取代。确保您的代码是为了调用onRefreshToken((方法而编写的,并获取新的令牌并将其发送到服务器以进行进一步的通信。更新时。您的所有新客户都将能够收到通知。
@Override
public void onNewToken(String s) {
super.onNewToken(s);
Log.d("NEW_TOKEN",s);
}