Firebase DatabaseReference按指定值过滤

Rav*_*ers 6 android json filter firebase-realtime-database

让我们假设我有这个firebase JSON结构:

例

而且我需要得到所有具有"from"等于"this"的属性的问题.

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

有没有什么办法可以在我的请求上设置一个过滤器来获取具有我选择属性的问题?(例如:搜索questions.json,其中== this)

ash*_*ish 20

如果在您的方案中可能有用,请尝试此操作

 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) {

        } 
    }); 
Run Code Online (Sandbox Code Playgroud)


Sus*_*ger 5

您可以使用equalTo

Query query = reference.child("questions").orderByChild("from").equalTo("this");