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

如何在Android中应用多个查询过滤firebase数据结果?,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我想在回收者视图中显示所有城市=Varanasi,性别=男性,工资在5000到15000之间的工人姓名。 在这种情况下,必须显示显示的工作人员的姓名。 必须应用什么查询以及如何实现该查询?首先,我认为您需要使用双倍值而不是字符串保存薪资 您需要在worker节点上进行引用,然后添加一个侦听器并迭代这些值。您还需要一个工人类来获取数据 yourReference.orderByChild("city").equalTo("Varanasi").addListenerForSingleValueEv

我想在回收者视图中显示所有城市=Varanasi,性别=男性,工资在5000到15000之间的工人姓名。 在这种情况下,必须显示显示的工作人员的姓名。
必须应用什么查询以及如何实现该查询?

首先,我认为您需要使用双倍值而不是字符串保存薪资

您需要在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. 
            }
         } 
       }
      }
    }
}

根据本教程,您可以为每个节点创建一个名为:city\u gender的新字段。例如,此字段的值将为Varanasi_Male。它应该是这样的:

城市性别:瓦拉纳西男

通过这种方式,您可以查询Firebase数据库中每一位在瓦拉纳西工作的男性员工。以同样的方式,你可以实现这一点的间隔


希望能有所帮助。

可能的重复获取所有数据但只显示相关数据是安全的方法吗?刚刚观看了该系列的一些视频,这看起来像是一个彻底的黑客行为!到目前为止,您是否知道是否添加了函数以允许在不必手动修改noSQL逻辑的情况下进行多重筛选?@RedM我不确定是否理解您的问题,但请使用自己的问题发布一个新的问题,以便我和其他Firebase开发人员可以帮助您。