Android 过滤实时数据库

Android 过滤实时数据库,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我想创建一个应用程序,任何用户都可以添加一个广告(公告),其中包含他想要出售的东西。 这是Firebase中实时数据库的结构: - advert - category - {uid} - title - price - description - location 我想让用户过滤广告的类别,标题和价格 目前,我只能按标题过滤广告,如下所示: FirebaseDatabase.

我想创建一个应用程序,任何用户都可以添加一个广告(公告),其中包含他想要出售的东西。 这是Firebase中实时数据库的结构:

- advert
    - category
        - {uid}
            - title
            - price
            - description
            - location
我想让用户过滤广告的类别,标题和价格

目前,我只能按标题过滤广告,如下所示:

FirebaseDatabase.getInstance().getReference()
                    .child("adverts")
                    .orderByChild("title")
                    .startAt("tv")
                    .limitToFirst(20)
我有3个问题:

  • 如何添加更多的“和”子句?或者我应该如何构造节点以过滤更多值
  • 我应该如何根据uid按升序或降序对从服务器接收的值进行排序
  • 似乎startAt(“abc”)方法并不是只获取标题“tv”中包含的子项。我做错什么了吗?如何仅获取包含字符串“tv”的子级
  • 在firebase上,无法添加“和子句”。您必须以符合筛选需要的方式构造数据

  • 我相信firebase已经按照uid对数据进行了排序

  • 如果只想获取包含字符串“tv”的子级,则应使用以下查询:

    FirebaseDatabase.getInstance().getReference().child(“广告”).orderByChild(“标题”).startAt(“电视”).endAt(“电视”).limitToFirst(20)


  • 我建议你看电视。它为您的3个问题提供了答案

    谢谢您的回答!谢谢你的视频。我不知道这些视频。1.我如何在我的案例中构建数据?2.Firebase已经按uid对数据进行了排序,但如果我希望数据有时按升序排序,有时按降序排序,该怎么办。我应该怎么改变呢?我刚刚看了视频,似乎你不能添加更多的“and子句”,也不能获取包含字符串的子项。Firebase让我失望了!是的,它只提供查询和排序数据的简单方法。如果你想做更多的事,那就靠你自己了。我希望谷歌有一天能改进这一点。