Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Firebase数据库排序函数startAt(布尔值)_Android_Firebase_Firebase Realtime Database - Fatal编程技术网

Android Firebase数据库排序函数startAt(布尔值)

Android Firebase数据库排序函数startAt(布尔值),android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,Firebase数据库startAt(布尔)做什么 说: 创建约束为仅返回具有值的子节点的查询 大于或等于给定值,使用给定的orderBy 指令或优先级作为默认值 布尔值怎么可能大于另一个布尔值?一个值是否大于另一个值由排序方法定义。Firebase使用的方法是: 使用orderByChild()时,包含指定子键的数据按如下顺序排列: 具有指定子键的null值的子项首先出现 下一个是指定子项的值为false的子项。如果多个子项的值为false,则它们将按关键字按字典顺序排序 下一个是指定子键的值

Firebase数据库
startAt(布尔)
做什么

说:

创建约束为仅返回具有值的子节点的查询 大于或等于给定值,使用给定的orderBy 指令或优先级作为默认值


布尔值怎么可能大于另一个布尔值?

一个值是否大于另一个值由排序方法定义。Firebase使用的方法是:

使用
orderByChild()
时,包含指定子键的数据按如下顺序排列:

  • 具有指定子键的
    null
    值的子项首先出现
  • 下一个是指定子项的值为
    false
    的子项。如果多个子项的值为
    false
    ,则它们将按关键字按字典顺序排序
  • 下一个是指定子键的值为
    true
    的子项。如果多个子项的值为
    true
    ,则它们将按关键字按字典顺序排序
  • 接下来是具有数值的子项,按升序排序。如果指定子节点的多个子节点具有相同的数值,则它们将按键排序
  • 字符串位于数字之后,按升序按字典顺序排序。如果指定子节点的多个子节点具有相同的值,则它们将按键按字典顺序排列
  • 对象排在最后,按字母顺序按键升序排序

  • 就Firebase的排序而言,
    true
    大于
    false

    哦,就是这样。所以,如果我想筛选所有具有foo-child的节点,我会执行reference.orderByChild(“foo”).startAt(false)。难道没有更可读的方法吗?这就是它的工作方式,因为Firebase查询是基于范围的。如果对存储在
    foo
    中的值有一些限制,则可以获得更可读的内容。例如,如果您正在存储正整数,
    startAt(0)
    将更具可读性。如果您正在存储字符串
    startAt(“”
    ),则可能会起作用(我还没有尝试过)。这取决于数据。