假设我有这个firebase JSON结构:
我需要获得所有具有属性的问题"来自"等于"这个"。
我知道我可以使用Volley创建一个StringRequest并从我的questions.json中获取所有值。然后,在客户端,我可以迭代响应并删除那些没有正确属性的响应,但这只有在我有几个问题时才有效。如果我有数百万个问题,我需要重复数百万个问题。
我有什么方法可以在我的请求中添加过滤器来获取具有我选择的属性的问题吗? (例如:搜索questions.json,其中== this)
答案 0 :(得分:17)
如果您的方案可能有用,请尝试此操作
DatabaseReference reference = FirebaseDatabase.getInstance().getReference();
Query query = reference.child("questions").orderByChild("from").equalTo("this");
query.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
for (DataSnapshot issue : dataSnapshot.getChildren()) {
// do with your result
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
答案 1 :(得分:4)
您可以使用equalTo
Query query = reference.child("questions").orderByChild("from").equalTo("this");