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