我想创建一个应用程序,任何用户都可以添加广告(发布)他想卖的东西。 这是 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 上,无法添加“AND 子句”。您必须以符合过滤需求的方式构建数据。
我相信 firebase 已经按 uid 对数据进行了排序。
如果您只想获取包含字符串“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/