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等}这样您就可以识别属于任何用户的订单