过滤Android实时数据库

时间:2017-01-22 22:31:37

标签: android firebase firebase-realtime-database

我想创建一个应用程序,任何用户都可以使用他想要销售的内容添加广告(宣布)。 这是Firebase中实时数据库的结构:

- advert
    - category
        - {uid}
            - title
            - price
            - description
            - location

我想让用户按类别,标题和价格过滤广告。

目前,我只能按照以下标题过滤广告:

FirebaseDatabase.getInstance().getReference()
                    .child("adverts")
                    .orderByChild("title")
                    .startAt("tv")
                    .limitToFirst(20)

我有3个问题:

  1. 我如何添加更多“和条款”?或者我应该如何构造节点以过滤更多的值?
  2. 我应该如何根据uid对从服务器收到的值按升序或降序排序?
  3. 似乎方法startAt(“abc”)不仅仅获取标题为“tv”中包含的子节点。难道我做错了什么?我该如何只获取包含字符串“tv”的孩子?

1 个答案:

答案 0 :(得分:1)

  1. 在firebase上,无法添加“AND子句”。您必须以符合过滤需求的方式构建数据。

  2. 我相信firebase已经通过uid对数据进行了排序。

  3. 如果您只想获取包含字符串“tv”的子项,则应使用此查询:

    FirebaseDatabase.getInstance().getReference().child("adverts").orderByChild("title").startAt("tv").endAt("tv").limitToFirst(20);

  4. 我建议您观看Firebase Database for SQL Developers Series。它有3个问题的答案