我创建了一个以前用于在Firebase数据库的用户节点中存储用户详细信息的功能。但是,在今天尝试它时,它现在返回一条错误消息,说
TypeError: Cannot read property 'uid' of null
我编写的代码只是将auth.uid存储为用户的子级,然后在该节点内存储该用户的所有数据。截至周五,这适用于少数用户,但现在它正在产生上述错误消息。
要解决此问题,我需要在注销时调用offAuth方法吗?如果是这样,我将如何解决这个问题?
到目前为止我的代码如下。
ref.onAuth(function(authData) {
ref.child('user').child(authData.uid).set(authData).then(function(auth) {
console.log('Data Saved Successfully!');
}).catch(function(error) {
console.log(error);
})
})
答案 0 :(得分:0)
只要用户的身份验证状态发生更改,就会调用onAuth()
方法。这意味着在用户进行身份验证和未经身份验证时都会调用它。在后一种情况下,authData
参数将为null
,您必须在代码中处理它。
使用onAuth()方法侦听用户身份验证状态的更改。
var ref = new Firebase("https://<YOUR-FIREBASE-APP>.firebaseio.com");
ref.onAuth(function(authData) {
if (authData) {
console.log("User " + authData.uid + " is logged in with " + authData.provider);
} else {
console.log("User is logged out");
}
});
您在代码中遗漏了if
。