Android Firebase数据库排序函数startAt(布尔值)
Firebase数据库Android Firebase数据库排序函数startAt(布尔值),android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,Firebase数据库startAt(布尔)做什么 说: 创建约束为仅返回具有值的子节点的查询 大于或等于给定值,使用给定的orderBy 指令或优先级作为默认值 布尔值怎么可能大于另一个布尔值?一个值是否大于另一个值由排序方法定义。Firebase使用的方法是: 使用orderByChild()时,包含指定子键的数据按如下顺序排列: 具有指定子键的null值的子项首先出现 下一个是指定子项的值为false的子项。如果多个子项的值为false,则它们将按关键字按字典顺序排序 下一个是指定子键的值
startAt(布尔)
做什么
说:
创建约束为仅返回具有值的子节点的查询
大于或等于给定值,使用给定的orderBy
指令或优先级作为默认值
布尔值怎么可能大于另一个布尔值?一个值是否大于另一个值由排序方法定义。Firebase使用的方法是: 使用
orderByChild()
时,包含指定子键的数据按如下顺序排列:
null
值的子项首先出现false
的子项。如果多个子项的值为false
,则它们将按关键字按字典顺序排序true
的子项。如果多个子项的值为true
,则它们将按关键字按字典顺序排序就Firebase的排序而言,
true
大于false
哦,就是这样。所以,如果我想筛选所有具有foo-child的节点,我会执行reference.orderByChild(“foo”).startAt(false)。难道没有更可读的方法吗?这就是它的工作方式,因为Firebase查询是基于范围的。如果对存储在foo
中的值有一些限制,则可以获得更可读的内容。例如,如果您正在存储正整数,startAt(0)
将更具可读性。如果您正在存储字符串startAt(“”
),则可能会起作用(我还没有尝试过)。这取决于数据。