android – 处理FCM设备组的刷新令牌

前端之家收集整理的这篇文章主要介绍了android – 处理FCM设备组的刷新令牌前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正试图通过Node.js服务器在我的 Android应用程序中实现Firebase云消息传递,并且我已经陷入了一个用例.

我看到了使用注册令牌创建设备组的Firebase教程,以便在登录相同用户的情况下向所有设备发送消息/通知,我不明白当其中一个注册令牌被onTokenRefresh()方法刷新时会发生什么.

如何区分要更改的令牌,因为所有令牌都属于同一个用户

更新:

好的,所以现在我又陷入了另一个阻塞用例.我正在创建一个由我的服务器中的用户ID标识的用户组.如果用户立即卸载并重新安装应用程序而另一个用户登录设备,如果我在之前的用户组上调用gcm消息,则此设备仍会收到该消息.

gcm是否有任何方法可以识别发送通知的设备是否已登录?如果是,是否使用与该组相同的用户登录

解决方法

所以我一直在考虑如何使用这种情况.首先,让我们在调用 onRefreshToken()时放入实例:

This will not be called very frequently,it is needed for key rotation and to handle Instance ID changes due to:

  • App deletes Instance ID
  • App is restored on a new device
  • User uninstalls/reinstall the app
  • User clears app data

猜猜一下,你可以说’onTokenRefresh()`将在上面发生之后被调用,如果设备在线(当然它必须在线以获得新的令牌).所以我猜这是我如何继续这个场景:

首先,在注册时,我会保存注册令牌并将其与另一个标识符配对,假设我的App Server中有一个deviceId(因为我们处于具有多个设备的用户的场景中).

因此,假设我添加了3个注册令牌,这些令牌也与他们的deviceIds配对.我将它们全部添加到设备组.

现在说其中一个设备触发onTokenRefresh(),我会立即向我的App Server发送一个删除请求,用于当前与该deviceId配对的注册令牌(您还应该在它连接到的任何设备组中将其删除) ),用新的替换它,然后将其重新添加到相应的设备组.

这是我能想到的最简单的方式.这里的关键是您将注册令牌与另一个标识符配对,并使用它来查找您需要替换的注册令牌.

猜你在找的Android相关文章