我查看了 firestore 文档。关于如何检索数据,它工作正常。但我无法将值存储在变量中。我看了一下 here 如何从 Firestore 数据库返回值?但答案最终结果仍然是 console.log(result);
。
function returnUserData(userId){
let docRef = db.collection("users").doc(userId)
return docRef.get().then((doc) => {
if (doc.exists) {
doc.data()
return doc.data();
} else {
// doc.data() will be undefined in this case
console.log("No such document!");
}
}).catch((error) => {
console.log("Error getting document:", error);
});
}
returnUserData(localStorage.getItem("currentUserId")).then(result => {
console.log(result);
})
我如何才能返回 returnUserData
的实际值?
答案 0 :(得分:2)
在一个典型的 React 应用程序中,您希望从结果中设置一个状态值,您可以在 useEffect
钩子中进行这样的异步调用,并在它解析后设置状态值
const [doc, setDoc] = useState()
useEffect(() => {
returnUserData(localStorage.getItem("currentUserId")).then(result => {
setDoc(result)
})
}, [])