【发布时间】:2020-12-28 12:34:34
【问题描述】:
这是我尝试使用 Firestore 对我的 React Native 应用程序执行的操作:
- 如果用户已登录,则激活快照侦听器并将值保存为状态。
- 如果用户退出,将状态设置为空。
当用户登录时,代码可以正常工作。但是,当用户退出时,会出现错误提示“null is not an object (evalating doc.exists)”。
下面的代码可能有什么问题?有什么建议吗?谢谢!
useEffect(()=>{
if (user) {
firestore().collection('points').doc(user.uid).onSnapshot(
(doc)=>{
if (doc.exists){
setPoints(doc.data());
}
else {
setPoints(null);
}
}
)
}
else {
setPoints(null);
}
},[user]);
【问题讨论】:
-
请编辑问题以更详细地解释哪一行代码产生了错误。此外,您应该添加代码来检查查询是否有错误。如果您有要求用户登录的安全规则,则查询将失败,而且您永远不会知道发生了这种情况。
标签: javascript reactjs firebase react-native google-cloud-firestore