所以我一直在考虑如何处理这种情况。首先,让我们在调用onRefreshToken()时放入实例:
这不会被频繁调用 ,它是密钥旋转和处理由于以下原因导致的实例ID更改所必需的:
- 应用删除实例ID
- 应用已在新设备上还原
- 用户卸载/重新安装应用程序
- 用户清除应用数据
猜到了,您可以说’onTokenRefresh()`将在上述情况发生之后并且设备在线时被调用( 当然,必须先在线才能获取新令牌
)。因此,我想这是我要进行的操作:
首先,在注册时,我将保存注册令牌并将其与另一个标识符配对,比如我的App Server中的deviceId( 因为我们处于具有多个设备的用户的场景中
)。
因此,假设我添加了3个注册令牌,这些令牌也与它们的deviceId配对。我将它们全部添加到设备组。
现在说一台设备触发
onTokenRefresh(),我将立即向我的App
Server发送删除请求,以获取当前已与该deviceId配对的注册令牌(您还应该在与其连接的任何设备组中将其删除),将其替换将其与新设备一起添加,然后将其重新添加到相应的设备组。
那是我想到的最简单的方法。这里的密钥是让您将注册令牌与另一个标识符配对,并使用它来查找需要替换的注册令牌。



