在firebase auth中将user获取为null



我正试图听取文档中的更改,但我收到了这个错误

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变量之前,你需要检查一下这种情况。

最新更新