【发布时间】:2016-06-03 02:43:56
【问题描述】:
我正在尝试为我的用户创建一个对话室节点。我有具有from 和to 用户ID 的节点。在创建新房间之前,我需要检查这两种情况,其中“from”是主机,to 是对手,“to”是主机,“from”是对手。
节点看起来像:
- Rooms
- "id1"
- from: 2
- to: 1
我想做的基本上是:
从 from = 1 and to = 2 OR from = 2 and to = 1 的房间中选择所有
有没有办法在一个查询中检查这两种情况?我对使用 Firebase 查询复杂数据的性质感到困惑。
【问题讨论】:
-
处理这些 1:1 对话的最简单方法是以参与用户的名字命名房间。有关示例,请参见 stackoverflow.com/questions/33540479/…。
-
哇。太精彩了。谢谢!通过这种方式,您是否建议将“房间+对话”结合起来并且只有一张桌子?或者如果我在同一张桌子上有消息和房间,会不会影响性能?
-
这是一种让相同的参与者最终进入同一个聊天室的方法。本质上,房间只是“命名对话”。或者反过来:对话实际上只是“我们使用 uid 作为房间名称的房间”。如果用户一次只查看一个房间或对话,则不存在性能问题。如果这是您采用的解决方案,我会将这个问题标记为重复的顺便说一句。
标签: ios swift firebase firebase-realtime-database