我正试图听取文档中的更改,但我收到了这个错误
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());
})
哪里我错了
您的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());
})
}
})
auth.currentUser
为空。这意味着在你调用它的那一刻没有用户登录。在使用你分配给它的user
变量之前,你需要检查一下这种情况。