Lor*_*ren 2 firebase firebase-realtime-database
我正在尝试查询我的数据以检索按字母顺序排序的项目列表,并按标记为"可见"的项目进行过滤.
这是我的数据结构.
listItems
list_1_uid
item_1_uid
name: "Item 01"
nameLowercase: "item 01"
visible: true
item_2_uid
name: "zItem 02"
nameLowercase: "zitem 02"
visible: false
item_3_uid
name: "aItem 03"
nameLowercase: "aitem 03"
visible: true
Run Code Online (Sandbox Code Playgroud)
这是我的查询.
mQuery = mFirebaseDbReference
.child("listItems")
.child("list_1_uid")
.orderByChild("nameLowercase")
.equalTo(true, "visible");
Run Code Online (Sandbox Code Playgroud)
我的查询没有返回数据.如果我删除.equalTo(true,"visible")语句,查询将返回整个字母顺序列表.
有关如何检索我的过滤列表的任何建议?
Firebase中的查询与orderBy调用中指定的属性相关联.因此equalTo(boolean value, String key),此示例中的调用引用nameLowercase,因此它将查询nameLowercase设置为的所有项目true.第二个参数指的是项目的键(例如item_1_uid),可用于指定查询中的起始点.例如,这对于对结果进行分页非常有用.
由于此查询没有限制,因此解决方案是使用按"可见"排序的查询,然后在nameLowercase客户端执行任何其他排序并获得最终结果:
mQuery = mFirebaseDbReference
.child("listItems")
.child("list_1_uid")
.orderByChild("visible")
.equalTo(true);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3225 次 |
| 最近记录: |