我有这样的Firebase数据库结构:
我想从索引2到5获取语言为英语的记录。
FirebaseDatabase.getInstance()
.getReference("data").orderByChild("language").startAt("English").endAt("English");
它提供所有记录而不是语言英语。
应该使用单个where子句以及响应数组的开始和结束索引或长度来检索数据?
答案 0 :(得分:0)
这是不可能的。 Firebase查询只能对单个属性或密钥具有条件。
找到了解决此问题的方法然后以不同的方式查询不同的语言。
FirebaseDatabase.getInstance()
.getReference().child("English").orderByKey().startAt("4").limitToFirst(2);
FirebaseDatabase.getInstance()
.getReference().child("Hindi").orderByKey().startAt("2").limitToFirst(3);
答案 1 :(得分:0)
仍然可以使用if
条件:
DatabaseReference ref = FirebaseDatabase.getInstance()
.getReference("data").orderByKey().startAt(2).endAt(5);
ref.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot childSnapshot : dataSnapshot.getChildren()) {
Quote quote = childSnapshot.getValue(Quote.class);
if(quote.getLanguage().equals("English")){
//put your code here
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});