2013-07-21 27 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條最高優先級的消息)。