使用Firebase Cloud Messaging管理多个用户的令牌

5

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

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

这种想法是正确的吗?它似乎是处理令牌的棘手方法,但据我所知是必要的?

** 根据 Firebase 文档,仅在以下情况下刷新令牌:

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

阅读更多的文档,是否最好先本地处理通知 - 决定它是否适用于已登录的帐户,然后再呈现它?即不向通知添加任何低级敏感数据(例如聊天消息),只提供“获取新消息的通知”?

1个回答

6

是的,完全正确。 FCM令牌标识特定设备上特定应用程序的安装,没有更多也没有更少。它本身与用户没有本质关联,因此如果您需要这样的关系,您必须自己将它们链接在一起。

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


在本地检查通知的目标用户是否与实际当前用户匹配是一个有趣的概念,可以帮助防止向错误的用户显示数据。

总的来说,当用户注销您的应用程序(或新用户登录时),您也可以清除令牌。这是(据我所知)处理此场景的最常见方法(请参见 12,以及来自这里的其他信息)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接