这是我的Firebase数据库结构 guide
我想获得像
这样的数据类别 =“cat”和级别 =“1”
这是我的代码
Query query = firebaseReference.orderByChild("category").equalTo("cat1").limitToFirst(20);
query.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
UTILS.Log.e(TAG, "List Of User Count " + dataSnapshot.getChildrenCount());
for (DataSnapshot dataSnapshot1 : dataSnapshot.getChildren()) {
//FCreateUSer modelRegister = dataSnapshot1.getValue(FCreateUSer.class);
UTILS.Log.e(TAG, "User Email :" + dataSnapshot1.child("question").getValue());
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
它是wrok但如何在firbase中使用两个条件我尝试两个orderByChild
但是它给出错误 java.lang.IllegalArgumentException:你不能组合多个orderBy调用!
答案 0 :(得分:1)
看一下这个视频(用JavaScript编写,但它确切地解决了你的问题):https://youtu.be/sKFLI5FOOHs?t=612
基本上,您需要为查询构建数据。在OP示例中,问题将包含category_level: "cat_1"
之类的字段。然后,您可以执行查询equalTo("cat_1")
。如果您需要其他查询,则可以省略category
和level
个字段(但在这种情况下您需要处理重复)。
如果您知道自己的项目数量很少,那么最简单的解决方案就是提取所有category=cat
和过滤level=1
项目。