Firebase实时数据库:如何检索此聊天应用程序数据结构中的数据?
我正在开发一个聊天应用程序与颤振和Firebase实时数据库。下面是我的JSON结构Firebase实时数据库:如何检索此聊天应用程序数据结构中的数据?,firebase,flutter,firebase-realtime-database,flutter-dependencies,Firebase,Flutter,Firebase Realtime Database,Flutter Dependencies,我正在开发一个聊天应用程序与颤振和Firebase实时数据库。下面是我的JSON结构 { "chat_room" : { "-MMR-dPo0A0nG4hcVW2j" : { "chat_mode" : "Supplier", "last_message" : "Test", "timestamp" : 160
{
"chat_room" : {
"-MMR-dPo0A0nG4hcVW2j" : {
"chat_mode" : "Supplier",
"last_message" : "Test",
"timestamp" : 1605713958580
},
"-MMRMbKC-818t2rg9UU5" : {
"chat_mode" : "Supplier",
"last_message" : "Test",
"timestamp" : 1605719979342
}
},
"members" : {
"-MMR-dPo0A0nG4hcVW2j" : {
"-MMR-dUUrMP1pDUZDMU3" : {
"email" : "someone@test.com",
"profile_pic" : "",
"userID" : 30,
"user_role" : "customer"
},
"-MMR-dYyDNdZfyLdCHD1" : {
"email" : "anotherone@test.com",
"userID" : 50,
"user_role" : "supplier"
}
},
"-MMRMbKC-818t2rg9UU5" : {
"-MMRMbP_ucK89HU-yKaW" : {
"email" : "someone@test.com",
"profile_pic" : "",
"userID" : 30,
"user_role" : "customer"
},
"-MMRMbTzL3x3I9BqLxOD" : {
"email" : "anotherone@test.com",
"userID" : 50,
"user_role" : "supplier"
}
}
}
}
聊天室
成员中
成员
属于哪个聊天室
,我在成员
中添加了聊天室
唯一键作为外键
,并在该键下添加所有相关的成员
email
属性搜索成员
,并获取与之关联的所有成员
记录。例如,我需要搜索成员
中电子邮件
为someone@test.com
这是我当前的代码,但它没有提供我所需要的。我也知道这是不正确的
final DatabaseReference reference = FirebaseDatabase.instance.reference().child('members');
reference.orderByChild("email").equalTo("someone@test.com").once()
如何在颤振中执行此数据检索?如果我的聊天应用程序数据结构无效,我愿意寻求更好结构的建议。您的数据结构在您查询的节点下有两层嵌套。Firebase实时数据库查询只能有一个动态级别,因此您对其进行排序/筛选的值必须位于每个直接子节点下的固定路径。再见。@FrankvanPuffelen谢谢你。我想我需要改变数据库结构。我在给定的链接中阅读了你的答案。那么,也许最好转换成这样的数据se结构@FrankvanPuffelen也在我共享的链接和您提供的链接中讨论了设置“Set”数据类型。当我们使用
push.set()