javascript中firestore中的orderBy()

javascript中firestore中的orderBy(),javascript,firebase,ecmascript-6,google-cloud-firestore,Javascript,Firebase,Ecmascript 6,Google Cloud Firestore,我有一个消防仓库结构,像- 选项板(集合)-->,…-->{colors:[…],createdAt:TIMESTAMP}(每个文档) 我想使用onSnapshot()监听器根据时间戳获取所有数据和顺序,并使用react hook将其存储到状态。 如何在下面的代码中使用orderBy查询 db.collection('palettes').onSnapshot(snapshot => { snapshot.docChanges().forEach(change => {

我有一个消防仓库结构,像-

选项板(集合)-->,…-->{colors:[…],createdAt:TIMESTAMP}(每个文档)

我想使用onSnapshot()监听器根据时间戳获取所有数据和顺序,并使用react hook将其存储到状态。 如何在下面的代码中使用orderBy查询

db.collection('palettes').onSnapshot(snapshot => {
  snapshot.docChanges().forEach(change => {
    if (change.type === "added") {
      setPalette( prevPalette => ([
        { id: change.doc.id, ...change.doc.data() },
        ...prevPalette
      ]))
    }
  })
})
看一看这张照片

你可以做:

db.collection('palettes').orderBy("createdAt", "desc").onSnapshot(snapshot => {
  snapshot.docChanges().forEach(change => {
    if (change.type === "added") {
      setPalette( prevPalette => ([
        { id: change.doc.id, ...change.doc.data() },
        ...prevPalette
      ]))
    }
  })
})

取决于排序方向

db.collection('palettes').orderBy("createdAt").onSnapshot(snapshot => {
  snapshot.docChanges().forEach(change => {
    if (change.type === "added") {
      setPalette( prevPalette => ([
        { id: change.doc.id, ...change.doc.data() },
        ...prevPalette
      ]))
    }
  })
})