0

我还在使用Firebase和Android通知。我希望能够根据一些规则将通知发送给单个用户。我到目前为止一直在阅读的是,一个令牌可以生成:服务器中的Firebase令牌管理

FirebaseInstanceId.getInstance().getToken() 

然后,令牌将需要到期时将在某个时候刷新。

如何尽可能设置这些令牌的到期日期?如果有一千个用户的令牌在同一时间刷新,那么我将需要为这些令牌执行一千次写入我的应用服务器。是否有针对此问题的已知缩放解决方案(例如,保持相同的标记但仅刷新其到期时间)?

回答

3

Firebase documentation on monitoring the token列举的理由:当

登记令牌可以改变:

  • 该应用程序将删除实例ID
  • 该应用程序被恢复的新设备
  • 用户上卸载/重新安装应用程序
  • 用户清除应用程序数据。

除了删除令牌(上述第一个选项),你有当令牌是刷新无法控制。但与Firebase身份验证令牌不同,Firebase Cloud Messaging的实例ID令牌不会按照固定的时间表进行刷新。实例ID令牌刷新相对较少,只需要特别考虑在最大的用例中扩展。

1

没有。没有办法刷新注册令牌的到期

当注册令牌是刷新时,令牌值将会改变。当注册令牌本身将到期事件是不确定的,以及只能在作为FirebaseInstanceId docs指定特定事件发生:

实例ID是稳定的,除了当:

  • 应用程序删除实例ID
  • 应用程序是一个新的设备
  • 用户卸载上还原/重新安装该应用
  • 用户清除应用数据

在上述情况下,会生成一个新的实例ID,并且应用程序需要重新创建先前生成的授权令牌,执行onTokenRefresh()

正如已经在令牌被刷新的事件上面提到的,onTokenRefresh()将被调用,你应该处理它发送给你的应用服务器和删除得到了过期旧令牌和一些后续步骤其他的东西。