Java Firebase查询:如何按子项排序';儿童价值观?
我正在用Java构建一个简单的群组聊天应用程序,我在Firebase实时数据库中创建了以下结构:Java Firebase查询:如何按子项排序';儿童价值观?,java,android,firebase-realtime-database,Java,Android,Firebase Realtime Database,我正在用Java构建一个简单的群组聊天应用程序,我在Firebase实时数据库中创建了以下结构: "GROUPS":{ "-LuSuWF4JjYNyjJ2Y5c4" : { "GROUP_MEMBERS" : { "qyM8p4IgJ7cFOBDNWeFjlaMjNsk2" : { "dateAdded" : "23/11/2019", "permissions" : 0, "user" : "email@email.com
"GROUPS":{
"-LuSuWF4JjYNyjJ2Y5c4" : {
"GROUP_MEMBERS" : {
"qyM8p4IgJ7cFOBDNWeFjlaMjNsk2" : {
"dateAdded" : "23/11/2019",
"permissions" : 0,
"user" : "email@email.com"
}
},
"dateCreated" : "23/11/2019",
"description" : "A dummy test group",
"name" : "Group 2"
}
我需要获得给定用户UID的所有组,我试图从java运行以下查询,但它不起作用
public static Query getGroupsByUser(String uid){
return FirebaseDatabase.getInstance().getReference(GROUPS).orderByChild(GROUP_MEMBERS).orderByKey().equalTo(uid);
}
我应该如何进行此查询?还是有更好的方法来构造我的数据库模式
请帮忙 一次只能使用一个order by方法。在同一查询中多次调用order by方法会引发错误。请使用orderByChild()或orderByKey()阅读文档
您当前的结构使您可以轻松找到给定组的成员。然而,这并不能使查找给定用户的组变得容易。为此,您需要向数据结构中添加一个反向索引,这与您现在拥有的内容几乎是相反的:一个为每个用户保留组的列表。有关详细解释,请参见我的回答: