我已经阅读了一篇关于如何为聊天应用程序构建firebase数据库的好文章,我在这个结构中结束了应用程序:
{
"users":{
"autoIdUser1":{
"username":"john",
"full_name":"John Vincent",
"groups":{
"autoIdGroup1":true,
"autoIdGroup2":true
}
},
"autoIdUser2": ...,
"autoIdUser3": ...
}
"groups": {
"autoIdGroup1"{
"group_name":"Administrators",
"group_description":"Users who can do anything!",
"members":{
"autoIdUser1":true,
"autoIdUser2":true
}
},
"autoIdGroup2"{
"group_name":"Moderators",
"group_description":"Users who can only moderate!",
"members":{
"autoIdUser1":true
}
}
}
}
现在我必须从我的数据库中检索成员所在的所有房间
我尝试做的是进行查询以检查每个组中是否存在成员下的特定用户ID但我无法确定如何...
我还感谢另一种在db中创建另一个结构的方式:
"membersInGroups":{
"autoIdGroup1":{
"autoIdMember1":true,
"autoIdMember3":true
}
"autoIdGroup2":{
"autoIdMember1":true
}
}
然后创建一个查询以检索用户所在的所有组ID,并使用它们再次查询每个组的所有信息。 查询的风格与旧结构的查询风格相同,但更简单
哪种方法最好?
如果我添加第二个结构,我可以删除“members”子节点吗?
我能看到现有结构的查询示例吗?
答案 0 :(得分:3)
确保尽可能将数据结构化为流,这意味着长而浅的数据列表。不要嵌套超出您需要的必要。
此外,不要害怕复制用户名,用户ID,对象标题等数据。尝试将您的数据结构与您的UI相匹配。