2017-10-14 67 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 
    }) 
})