android - 过滤实时数据库安卓

标签 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. 在 firebase 上,无法添加“AND 子句”。您必须以符合过滤需求的方式构建数据。

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

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

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

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

关于android - 过滤实时数据库安卓,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41796870/

相关文章:

android - 模拟器有问题,因为启动 Activity 需要很长时间

Firebase云函数部署错误

python - 如何验证 Google AppEngine 上的 Python 脚本以使用 Google Firebase?

火力地堡 : How to validate a User ID posted by another user.

android - 如何在 React Native 应用程序中添加圆形底部可折叠工具栏?

android - 尝试设置 EditText 小部件时出现 java.lang.NullPointerException

java - 使用 getSupportActionBar 显示后退按钮

安卓 Firebase 分析 : predefined and custom parameters not working as expected

ios - 如何删除 Firebase 观察者?

android - 如何将 firebase 数据加载到 recyclerview