如何根据参与者的状态查询聊天
问题陈述:
给定 Firebase表示与多个参与者的聊天对话的数据库结构,我们如何有效地查询包含特定参与者的聊天?
当前查询(无效):
return this.af.database.list('chats', { query: { orderByChild: 'participants', equalTo: username, // How to check if participants contain username } });
当前查询存在问题:
推荐解决方案:反转索引
为了优化查询,建议倒置索引结构,通过数据扁平化和聊天室上拉与用户级别的关系。这涉及到:
修订数据结构:
userChatrooms: { john: { chatRoom1: true, chatRoom2: true }, puf: { chatRoom1: true, chatRoom3: true } }
更新的查询:
ref.child('userChatrooms').child(username)
倒排索引的好处:
以上是如何根据参与者的状态高效查询 Firebase 聊天?的详细内容。更多信息请关注PHP中文网其他相关文章!