Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Firebase多查询不工作_Android_Firebase_Firebase Realtime Database - Fatal编程技术网

Android Firebase多查询不工作

Android Firebase多查询不工作,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我试图对我的一个表执行嵌套查询,但它最终返回表中date较大的所有值,而不是返回表中userId=userId和date较大的所有值 DatabaseReference tableAttendObject = getDatabaseTableWith(Constants.tableAttendObject); Query query = tableAttendObject.orderByChild(Constants.AttendObjectUserUUID).equalTo(userId);

我试图对我的一个表执行嵌套查询,但它最终返回表中
date
较大的所有值,而不是返回表中
userId=userId
date
较大的所有值

DatabaseReference tableAttendObject = getDatabaseTableWith(Constants.tableAttendObject);
Query query = tableAttendObject.orderByChild(Constants.AttendObjectUserUUID).equalTo(userId);
query = query.getRef().orderByChild(Constants.AttendObjectEventDate).startAt(date);

 query.addValueEventListener(new ValueEventListener() {
 //return logic 
我在表中的数据模型如下所示:

->id->userId
    ->date 

如果您已经知道用户ID,为什么要进行查询?? 就这么做吧

Query query = tableAttendObject.child(userId)
.orderByChild(Constants.AttendObjectEventDate)
.startAt(date).addValueEventListener(new ValueEventListener() {
....

如果您已经知道用户ID,为什么要进行查询?? 就这么做吧

Query query = tableAttendObject.child(userId)
.orderByChild(Constants.AttendObjectEventDate)
.startAt(date).addValueEventListener(new ValueEventListener() {
....

在Firebase查询中,只能对单个属性进行排序/筛选@uguboz的回答显示了一个可能有效的解决方案,但也看到您只能在Firebase查询中对单个属性进行排序/筛选@uguboz的回答显示了一个可能有效的解决方案,但也看到这只在
id=userId
的情况下有效,我只需要检索一个对象。。。在我的例子中,
id
是一个不同的id,可以是itAha ok的多个实例。然后更改数据库模式。从订单中删除用户ID。并将订单id添加到用户节点,例如用户1:{order1id:true;order2id:true等}这样,您可以识别属于任何用户的订单。这仅适用于
id=userId
的情况,并且我必须只检索一个对象。。。在我的例子中,
id
是一个不同的id,可以是itAha ok的多个实例。然后更改数据库模式。从订单中删除用户ID。并将订单id添加到用户节点,例如用户1:{order1id:true;order2id:true等}这样您就可以识别属于任何用户的订单