首页 > 解决方案 > 如何知道客户端何时停止侦听 Firestore 中的更改以供具体参考?

问题描述

我正在努力为我需要在 Firestore 中做的一件有趣的事情找到解决方案。

如果你帮助我,那就太棒了。我将尝试解释:

我有类似扑克桌的东西,用户可以在其中创建表格并加入它们。当用户打开表时,其他用户可以在表中看到他。当他离开桌子时,他应该消失(这是我遇到问题的地方)

离开表格可以通过导航到其他页面、关闭选项卡等来发生。他可以在不同选项卡、浏览器或设备的同一个表格中(如果没有其他选项,我可以更改此设置)。

所以我需要的是显示哪些玩家连接到一张桌子。你能想出一个最佳的解决方案吗?你将如何实现这一点?

.

如果有帮助,我尝试了一些但不起作用的方法:

标签: firebasegoogle-cloud-firestore

解决方案


所以我需要的是显示哪些玩家连接到一张桌子。你能想出一个最佳的解决方案吗?你将如何实现这一点?

我能想到的最简单的解决方案是创建一个表集合并在每个文档中存储一个用户 ID 数组:

Firestore-root
   |
   --- tables (collection)
         |
         --- tableId (document)
               |
               --- users: ["usersIdOne", "usersIdTwo", "usersIdThree"]

现在要检查哪些玩家连接到表,您可以简单地在文档/查询上附加一个实时侦听器,以便您可以实时获取数据。这意味着一旦玩家加入或离开牌桌,监听器就会触发并且您会立即收到通知。

要将用户添加到表中,只需将其 uid 添加到users数组中,要删除侦听器,请从users数组中删除其 uid。欲了解更多信息:

请参阅arrayUnionarrayRemove


推荐阅读