【问题标题】:How to filter firebase data results by applying multiple Query in Android?如何通过在 Android 中应用多个查询来过滤 Firebase 数据结果?
【发布时间】:2017-05-17 21:16:07
【问题描述】:

我想在 Recycler 视图中显示 city="Varanasi" 和 gender="Male" 和薪水在 5000 到 15000 之间的所有工人姓名。 在这种情况下,必须显示显示的工人的姓名。 必须应用什么查询以及应该如何实现?

【问题讨论】:

标签: android firebase firebase-realtime-database


【解决方案1】:

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

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

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. 
            }
         } 
       }
      }
    }
}

【讨论】:

  • 获取所有数据但只显示相关数据是否安全?
【解决方案2】:

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

city_gender:“瓦拉纳西男”

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

希望对你有帮助。

【讨论】:

  • 刚刚观看了该系列的一些视频,这看起来完全是 hack!到目前为止,您是否知道是否添加了函数以允许多重过滤而无需手动修改 noSQL 逻辑?
  • @RedM 我不确定我是否理解您的问题,但请使用自己的MCVE 发布一个新问题,以便我和其他 Firebase 开发人员可以帮助您。
猜你喜欢
  • 2018-10-10
  • 2022-11-27
  • 1970-01-01
  • 2018-01-08
  • 2015-04-20
  • 1970-01-01
  • 1970-01-01
  • 2018-08-04
  • 1970-01-01
相关资源
最近更新 更多