Firebase中的优先级是什么意思?

nod*_*ase 31 firebase

我已经阅读了有关优先级的Firebase文档,但我认为我还没理解.

我想我明白它与查询和排序数据有关.给我的问题(和答案)一些重量,在什么情况下你可能会使用优先级?

从我读过的文档中,您可以在某个引用中设置值时设置优先级,然后在查询引用优先级时根据其类型和值确定顺序.这听起来有些道理,但我并不十分了解它.

Fra*_*len 55

披露:我为Firebase工作.

优先级是每个节点的可选(数字或字母数字)值,用于在特定父节点或查询中对子节点进行排序(如果未指定其他排序条件).从大多数数据视图中隐藏节点的优先级.在为节点指定优先级的情况下,可以将其作为快照的.priority属性exportVal().

由于Firebase添加了在指定属性上订购子项的功能,因此优先级已失去其大部分价值.它们是Firebase orderByChild查询之前的遗留工件.如果您今天开始使用Firebase项目,则应该使用orderByChild而不是依赖于优先级.

  • 请使用此信息更新文档!令人非常困惑的是,为什么你需要在当前的文档中使用优先级,以及你所说的现在我们有orderByChild它们是不必要的. (17认同)
  • 认真记下这个! (12认同)
  • Frank:Firebase文档团队将此信息添加到文档中会很有帮助.我是刚开始使用Firebase的Android开发人员.在仔细研究了Firebase Android文档之后,我很困惑`orderByPriority()`提供了什么`orderByChild()`(显然很少或没什么),直到我读到这个答案. (7认同)
  • 您传递给 `orderByChild()` 的参数是属性的 *name*,因此自然总是一个字符串。但是你可以将任何原始 JSON 类型传递给 `equalTo()`、`startAt()` 和 `endAt()`。所以它们也可以完美地用于时间戳。 (2认同)
  • 请注意,正如@FrankvanPuffelen在另一个答案中解释的那样,Firebase不支持链接多个`orderByChild`调用.如果你想先由一个孩子然后由另一个孩子排序(例如,打破平局),你必须提前解决这个问题,并设置优先级或创建一个新的孩子用于排序.指定默认排序顺序的唯一方法是设置优先级.http://stackoverflow.com/a/26701282/5352503 (2认同)