Firebase:.priority值

时间:2013-04-01 07:24:41

标签: firebase

  • 如何检查我的“Forge”中的.priority值?
  • 根据文档,较小的.priority值出现在较大的.priority值之前。如果我将epoch作为优先级使用秒数,并且我希望最新的子项显示在顶部,我应该将.priority设置为1 /秒吗?
  

接下来是以数字为优先考虑的儿童。它们按优先级(从小到大)按数字排序,然后按名称(a到z)按字典顺序排序。

  • 从实验中,我已经确定如果我将.priority设置为java.util.Date#getTime,那么最老的孩子会出现在我的Forge中,但最新的孩子在我的Javascript on()上排名靠前使用prevChildName。这是为什么?

5 个答案:

答案 0 :(得分:5)

您可以通过Forge中的“导出JSON”在json中看到.priority

答案 1 :(得分:5)

答案 2 :(得分:4)

无法从Forge获得但您可以从JSON格式中看到它:

class A { } class B : A { var y = 42 } // #1 func test(x: A?) -> String { return (x as? B!)?.y == 42 ? "YES" : "NO" } let a: A? = A() print(test(a)) let b: B? = B() print(test(b))

答案 3 :(得分:2)

Forge现在无法查看实际的优先级值,但会正确排序子项。

如果您想要的是按逆时间顺序对项目进行排序,我建议您只需将优先级设置为正常时间戳(或使用push - 它会自动对它们进行排序)。然后,您可以简单地向后渲染它们以实现您想要的相反顺序。例如,您可以在第一个元素之前插入新消息,而不是将新消息附加到应用列表的底部。

答案 4 :(得分:0)

snapshot.exportVal()

  

将DataSnapshot的全部内容导出为Javascript   宾语。这与val()类似,但优先级信息除外   包括(如果可用),使其适合备份您的数据。

     

导出格式是带有“.priority”条目的Javascript对象   添加到具有优先级的任何对象。在原始值的情况下   (字符串,数字或布尔值)具有优先级,值被包装   在具有“.value”和“.priority”属性的对象中。如果是   没有优先级的原始值,返回原始值。

来源:https://www.firebase.com/docs/web/api/datasnapshot/exportval.html