Firebase DatabaseReference按指定值过滤

时间:2017-05-25 11:10:41

标签: android json filter firebase-realtime-database

假设我有这个firebase JSON结构:

example

我需要获得所有具有属性的问题"来自"等于"这个"。

我知道我可以使用Volley创建一个StringRequest并从我的questions.json中获取所有值。然后,在客户端,我可以迭代响应并删除那些没有正确属性的响应,但这只有在我有几个问题时才有效。如果我有数百万个问题,我需要重复数百万个问题。

我有什么方法可以在我的请求中添加过滤器来获取具有我选择的属性的问题吗? (例如:搜索questions.json,其中== this)

2 个答案:

答案 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");