NextJS:等待来自Google Firestore的数据

时间:2019-05-15 22:21:52

标签: javascript google-cloud-firestore next.js

因此,我正在尝试从Google Firestore获取数据,并且正在使用NextJS框架。

Index.getInitialProps = async function () {
  const db = await loadDB()
  let data = []
  db.firestore().collection('data').get().then(querySnapshot => {
    querySnapshot.forEach(doc => {
      data.push(doc.data())
      console.log(data)
    })
  })

  return {
    data
  }
}

因此,在我的“服务器”上,我得到了数据,但是在我的Index组件中,它只是一个空数组...有人知道我在这里缺少的将数据传送到组件的信息吗?

我假设它正在某个地方等待着……

1 个答案:

答案 0 :(得分:1)

如果您想知道丢失的await应该在哪里,那么只有一个地方。它仅适用于promise,并且get()返回promise,因为对Firestore的查询尚未立即完成。

async function () {
  const db = await loadDB()
  let data = []
  const querySnapshot = await db.firestore().collection('data').get()
  querySnapshot.forEach(doc => {
    data.push(doc.data())
    console.log(data)
  })

  return {
    data
  }
})