【发布时间】:2021-09-24 22:33:29
【问题描述】:
我查看了 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 的实际值?
【问题讨论】:
-
该值已存储在变量中。您已将其命名为
result -
如果我尝试在其他地方使用
console.log(result),我得到的结果未定义。 -
result仅在您的.then()回调函数的范围内。你想对结果做什么?你想在哪里使用它? -
我正在尝试运行 returnUserData,将其存储在一个变量中并在 useState 中使用它。
标签: javascript reactjs asynchronous google-cloud-firestore