javascript - 从 Firestore 返回值而不是 console.logging 它。- 反应
问题描述
我看过firestore doc。关于如何检索数据,它工作正常。但我无法将值存储在变量中。我在 这里查看了如何从 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
?
解决方案
在一个典型的 React 应用程序中,你想从结果中设置一个状态值,你可以在一个useEffect
钩子中进行这样的异步调用,并在它解析后设置状态值
const [doc, setDoc] = useState()
useEffect(() => {
returnUserData(localStorage.getItem("currentUserId")).then(result => {
setDoc(result)
})
}, [])
推荐阅读
- sql - sql查询排序但在顶部显示特定值
- perl - Perl 用字符串死而不附加文件名和行号
- r - Rmarkdown Beamer 演示,xcolor 的选项冲突
- sql - 在没有任何明确搜索条件的情况下从长字符串中获取字符串
- traefik - Traefik 前端重定向不起作用
- r - R:将列表的所有 s4 对象合并为一个
- c# - 新的非聚集索引引发死锁
- rabbitmq - 使用 Spring AMQP 和 RabbitMQ HA 进行故障转移
- c# - 在 C# 中从 Share point office 365 读取 Excel 文件
- javascript - 将 jquery 事件与相同的类名元素分开