2017-07-27 50 views
1

有一個在火力地堡實時數據庫書籍名單:在火力地堡數據庫降序排序

[ 
    { 
    title: "Don't Make Me Think", 
    upvotes: 110 
    }, 
    { 
    title: "The Mythical Man Month", 
    upvotes: 111 
    }, 
    { 
    title: "Code Complete 2", 
    upvotes: 112 
    } 
] 

默認情況下,下面返回查詢這份名單中ASC順序:

firebase.database().ref('books').orderByChild('ups') 

如何我可以通過upvotes DESC查詢和訂購嗎?

+1

如果我是正確的,上述鏈接中提出的解決方案建議我將'upvote'屬性存儲爲負數。然後,在渲染時,它應該再次轉換爲正整數。如果是這樣,這似乎有點不好意思,因爲我的數據庫中的數據並沒有真正反映書籍的優點。 – puoyaahhh

+2

我明白這一點。然而,這是一個數字 - 無論是正面還是負面,你都知道它代表什麼。或者,您可以將該號碼的負數版本存儲在另一個可用於排序的子節點中。你總是可以在代碼中排序。 – Jay

回答

3

不幸的是firebase不允許按降序返回。我通常只是顛倒了客戶端返回結果的順序。

如果你的數據查詢太大,客戶端進行排序,你可以做

firebase.database().ref('books').orderByChild('ups').limitToLast(2) 

,然後從那裏顛倒的結果。可以看到文檔here