【发布时间】:2016-05-24 00:15:44
【问题描述】:
我正在设计一个类似于 Facebook Messenger 的聊天应用程序。我当前的两个根节点是chats 和users。用户有一个关联的聊天列表users/user/chats,并且聊天是通过chats 节点chats/a151jl1j6 中的自动ID 添加的。该节点存储诸如消息列表、最后一条消息的时间、是否有人正在打字等信息。
我正在苦苦挣扎的是在哪里定义聊天中的两个用户。最初,我在users/user/chats 节点中将其他用户的引用作为chatId 键的值,但我认为这是一个坏主意,以防我想要群聊。
似乎更合乎逻辑的是有一个chats/chat/members 节点,我在其中定义userId: true, user2id: true。我的问题是如何有效地查询它。例如,如果用户要与用户创建新的聊天,我们要检查他们之间是否已经存在聊天。我不确定如何查询“查找成员包含currentUserId 和friendUserId 的聊天”,或者这是否是一种有效的非规范化处理方式。
有什么提示吗?
【问题讨论】:
标签: firebase