2017-10-14 34 views
1

componentWillMount我正在註冊一個onSnapshot函數來更新狀態。如何使用Firestore訂購價值onSnapshot

componentWillMount() { 
    todoRef.onSnapshot((doc) => { 
     let todos = [] 
     doc.forEach(doc => {todos.push(doc.data())}) 
     this.setState({ 
     todos 
     }) 
    }) 
    } 

然而,火力/公司的FireStore的工作方式是,它只是推了隨機密鑰,所以當我取回數據這不是正確的順序。

我知道有一個.orderByValue()函數,但我試過實現它,似乎無法弄清楚。

回答

1

我的裁判是const todoRef = db.collection("todos");

所以一旦你已經得到了參考到您的收藏,你可以再做排序查詢。

todoRef.orderBy('createdAt').onSnapshot((docSnapShot) => { 
    let todos = [] 
    docSnapShot.forEach(doc => {todos.push(doc.data())}) 
    this.setState({ 
    todos 
    }) 
})