【问题标题】:getting user as null in firebase auth在firebase auth中将用户设为null
【发布时间】:2020-02-22 23:01:50
【问题描述】:
我正在尝试收听文档中的更改,但出现此错误
Uncaught TypeError: Cannot read property 'uid' of null
这是我的 javascript 代码
var user = auth.currentUser;
db.collection('user-intro').doc(user.uid).onSnapshot(function(doc){
console.log(doc.data());
})
我错了
【问题讨论】:
标签:
javascript
google-cloud-firestore
firebase-authentication
【解决方案1】:
您的auth.currentUser 在用户登录之前获取用户。
如果用户刚刚登录,或者您刷新页面,通常会发生这种情况。虽然 Firebase 会在页面重新加载时恢复身份验证状态,但这需要一些时间,因为它需要根据服务器检查凭据。
为确保您的代码仅在身份验证状态恢复后运行,您需要将其包装在 onAuthStateChanged 处理程序中:
firebase.auth().onAuthStateChange(function(user) {
if (user) {
db.collection('user-intro').doc(user.uid).onSnapshot(function(doc){
console.log(doc.data());
})
}
})
【解决方案2】:
auth.currentUser 为空。这意味着在您调用它的那一刻没有用户登录。在使用分配给它的 user 变量之前,您需要检查这种情况。