gpt4 book ai didi

javascript - 如何在 nextJS getserversideprops 中使用 firebase

转载 作者:行者123 更新时间:2023-12-05 04:49:20 27 4
gpt4 key购买 nike

如果有签名用户,我想使用 getServerSideProps 在 Firestore 中获取“示例”文档。下面的代码不起作用。结果是“无法读取”我应该怎么办?或者有其他方法吗?

export const getServerSideProps = () => {
let currentUser = []

authService.onAuthStateChanged(async user => {
if(user) {
const docRef = dbService.collection('whole_users').doc('sample').get()
await docRef.then((doc) => {
if(doc.exists) {
currentUser.push(doc.data())
}
})
} else {
console.log("can't read")
}
})

return {
props: {currentUser}
}
}

最佳答案

第一个:您在没有 await 的情况下调用 get()。将您的代码更改为:

export const getServerSideProps = () => {
let currentUser = []

authService.onAuthStateChanged(async user => {
if(user) {
const docRef = dbService.collection('whole_users').doc('sample')
await docRef.get().then((doc) => {
if(doc.exists) {
currentUser.push(doc.data())
}
})
} else {
console.log("can't read")
}
})

return {
props: {currentUser}
}
}

第二个:onAuthStateChanged 仅针对客户端。要在服务器端访问身份验证状态,您需要将身份验证状态放入提供程序中。 Here是一个如何做到这一点的例子。

关于javascript - 如何在 nextJS getserversideprops 中使用 firebase,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67625554/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com