管理具有多个用户的Firebase云消息令牌



查看Firebase文档,它建议为每个客户端实例生成一个FCM令牌,然后必须手动存储。如果我将每个令牌链接到Firestore数据库中的用户文档,如果用户注销,我是否需要手动删除设备特定的令牌?

例如,用户A启动应用程序,并且他们的FCM令牌(例如"ABC"(被存储到他们的用户文档中。然后,用户A注销,B登录。FCM令牌不会刷新**,因此我需要从A的用户文档中删除该令牌,并将其移动到B。否则,任何发送给A的通知都将发送给B(都在同一设备上(。

这种想法正确吗?这似乎是一种管理代币的棘手方法,但据我所知,这是必要的吗?

**根据Firebase文档,只有在以下情况下才会刷新令牌:

  1. 应用程序在新设备上还原
  2. 用户卸载/重新安装应用程序
  3. 用户清除应用程序数据

阅读更多文档,首先在本地处理通知是更好的解决方案吗?决定通知是否发送给登录帐户,然后提交?也就是说,不在通知中添加任何低级别的敏感数据(如聊天消息(,只需提供"获取新消息的通知"?

是的,这是正确的。FCM令牌识别特定设备上特定应用程序的安装,仅此而已。它与用户没有固有的关系,所以如果你需要这样的关系,你必须自己将它们链接在一起。

请记住,就像多个用户可以使用单个设备一样,单个用户也可以使用多个设备。根据我的经验,这实际上是两者中更常见的情况。


将通知的目标用户与实际的当前用户进行本地检查是一个有趣的概念,它肯定有助于防止将数据显示给错误的用户。

不过,通常情况下,当用户注销你的应用程序(或新用户登录(时,你也可以清除令牌。这是(据我所知(处理这种情况最常见的方法(请参阅本文中的1、2和更多内容(。

最新更新