因此,我正在尝试从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组件中,它只是一个空数组...有人知道我在这里缺少的将数据传送到组件的信息吗?
我假设它正在某个地方等待着……
答案 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
}
})