查看 Firebase 文档,它建议为每个客户端实例生成一个 FCM 令牌 - 然后必须手动存储该令牌。如果我将每个令牌链接到 Firestore 数据库中的用户文档,那么在用户注销时我是否需要手动删除设备特定的令牌?
例如,用户 A 启动应用程序,并且他们的 FCM 令牌(例如“ABC”)被存储到他们的用户文档中。然后,用户 A 注销,B 登录。FCM 令牌不会刷新**,因此我需要从 A 的用户文档中删除该令牌并将其移动到 B 的用户文档中。否则,任何发往 A 的通知都将发送至 B(全部在同一设备上)。
这种想法正确吗?这似乎是一种管理代币的棘手方法,但据我所知,这是必要的吗?
** 根据 Firebase 文档,令牌仅在以下情况下刷新:
- 该应用程序已在新设备上恢复
- 用户卸载/重新安装应用程序
- 用户清除应用程序数据。
阅读更多文档,首先在本地处理通知是否是更好的解决方案 - 决定它是否发往登录帐户,然后呈现它? IE。不向通知添加任何低级敏感数据(例如聊天消息),而只是提供“获取新消息的通知”?
对,那是正确的。 FCM 令牌标识特定设备上特定应用程序的安装,仅此而已。它与用户没有内在的关系,因此如果您需要这样的关系,您必须自己将它们链接在一起。
请记住,就像多个用户可以使用单个设备一样,单个用户也可以使用多个设备。根据我的经验,这实际上是两者中更常见的情况。
在本地检查通知的目标用户与实际的当前用户是一个有趣的概念,它肯定有助于防止向错误的用户显示数据。
不过,一般来说,您还可以在用户退出应用程序(或新用户登录)时清除令牌。这是(据我所知)处理这种情况的最常见方法(参见1 https://stackoverflow.com/questions/43193215/firebase-cloud-messaging-handling-logout, 2 https://stackoverflow.com/questions/60296911/how-to-delete-firebase-cloud-messaging-token-when-user-log-out-of-the-react-nati,以及更多来自).
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)