2013-07-21 34 views
1

我有一个firebase位置的有序列表。我使用属性ut(更新时间)作为他们的优先级。我想列出清单,以便获取最新的更新文档。Firebase阅读订购的数据颠倒顺序?

所以我设置优先级为负ut

var query = fb.child('view/documents').limit(20) 
query.on('child_added', function(child) { 
    console.log(child.val()) 
    console.log(child.getPriority()) 
}) 

我希望这样的事情返回了最新20个文件,但它不,它返回最古老20.伪造我看到我期望的方式上市,最新的文件都放在顶部,但查询发送给我的底部20.这似乎违反我的查询发送给我的底部20而不是前20的预期。

真正让我困惑的是,child_added返回预期的顺序,最新(最小优先级)。但它又是列表中最古老的。

我做错了什么或者这是一个在firebase中的错误。

谢谢。

回答

3

我理解你的困惑,但实际上它应该如何工作:limit(20)返回了20个最重要的孩子,从第20个最重要的孩子开始,以绝对最优先的孩子结束(然后更新每当添加一个新的孩子时,其优先级足以制作该列表)。

您可以看到https://www.firebase.com/docs/queries.html的示例,其中优先级是消息发送时的Unix时间戳,而messageListRef.limit(100)用于获取最近的100条消息(即100条最高优先级的消息)。