如何在Android中应用多个查询来过滤firebase数据结果?

时间:2017-05-17 21:16:08

标签: android firebase firebase-realtime-database

My database Structure is as follows

我想显示其城市="瓦拉纳西"和性别="男性"在Recycler View中,工资介于5000到15000之间。 在这种情况下,必须显示所示工作人员的姓名。 必须应用什么查询以及如何实现?

2 个答案:

答案 0 :(得分:1)

首先,我认为你需要用双值保存薪水,而不是字符串。

您需要在worker节点上引用,然后添加一个侦听器并迭代这些值。您还需要一个worker类来获取数据。

yourReference.orderByChild("city").equalTo("Varanasi").addListenerForSingleValueEvent(){

    @Override
    public void onDataChange(Datasnapshot data){
       for(Datasnapshot d: data.getChildren()){
         yourClass work = d.getValue(yourClass.class);
         if(work.getGender().equals("Male"){
            double salary = work.getSalary();
           if(salary  > 5000 && salary < 15000){
                 //save the worker into a list. 
            }
         } 
       }
      }
    }
}

答案 1 :(得分:1)

根据本教程,The Firebase Database For SQL Developers您可以为名为city_gender的每个节点创建一个新字段。对于您的特定示例,此字段的值将为Varanasi_Male。这应该是这样的:

  

city_gender:&#34; Varanasi_Male&#34;

通过这种方式,您可以查询Firebase数据库中每位male并在Varanasi工作的工作人员。以同样的方式,您可以在间隔期间实现此目的。

希望它有所帮助。