Firebase InstanceId未被删除

时间:2018-11-14 05:41:26

标签: android firebase firebase-cloud-messaging delete-file instanceid

我有一个正在部署的具有Firebase通知服务的Android应用。 与之关联的google-services.json文件输入错误。 我修复了.json文件,firebase服务现在对于新安装的应用程序照常工作。 但是对于当前用户,它不起作用(因为它仍在使用旧令牌)。

  

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

     

这不会经常被调用,它是密钥旋转和处理由于以下原因导致的实例ID更改所必需的:

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

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

我尝试以编程方式删除instanceId(因此我得到了一个新令牌);它会被删除(不会引发异常),但是新令牌与旧令牌相同。

更改google-services.json是否会自动触发令牌更改?

在不为当前用户重新安装应用程序的情况下(更新时)如何解决此问题?

我正在使用最新版本的Firebase和google-services(在Gradle中)。

1 个答案:

答案 0 :(得分:0)

您可以通过将新的APK提交到Play商店来更新您的应用。因此,在老客户更新您的APK之后,老客户将被新的APK和新的google-services.json文件替换。确保编写代码以调用onRefreshToken()方法并获取新令牌并将其发送到服务器以进行进一步的通信。更新时。您所有的新客户都将能够收到通知。

@Override
public void onNewToken(String s) {
super.onNewToken(s);
Log.d("NEW_TOKEN",s);
}