2016-05-16 50 views
0

我已经创建了一个先前正在将用户详细信息存储在我的Firebase数据库的用户节点中的功能。然而在今天尝试它现在是返回一个错误信息,说我是否需要在注销时调用offAuth方法?

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

只要用户的身份验证状态发生变化,就会调用onAuth()方法。这意味着它在用户通过身份验证时以及未经身份验证时被调用。在后一种情况下,authData参数将为null,您必须在代码中处理该参数。

Firebase documentation

使用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

+0

完美...感觉非常愚蠢的错过。谢谢。 –

相关问题