2017-02-19 53 views
0

我很困惑,为什么试图输出,当我注册了一个帐户,并CONSOLE.LOG它显示我的输入显示名返回为NULL但显示名称是什么时候?火力地堡显示名返回为NULL

我添加了一个新的领域:

<input class="mdl-textfield__input" style="display:inline;width:auto;" type="text" id="displayName" name="displayName" placeholder="displayName"/> 

里面的firebase.auth().createUserWithEmailAndPassword(email, password).catch(function(error) {功能我做了对的console.log和displayName它输出的时田那里提交并创建了数据库用户,但输出的时候displayName是回报为NULL

firebase.auth().onAuthStateChanged(function(user) { 
     // [START_EXCLUDE silent] 
     document.getElementById('quickstart-verify-email').disabled = true; 
     // [END_EXCLUDE] 
     if (user) { 
      // User is signed in. 
      var displayName = user.displayName; 

我只是做对用户的详细信息,像这样一个简单的文本输出:

document.getElementById('quickstart-account-details').textContent = JSON.stringify(user, null, ' '); 
+0

您是否通过firebase.auth()设置了displayName。updateProfile({displayName:'John Doe'});如果没有设置显示名称,那么您将始终获得空显示名称。 – bojeil

回答

0

这可能是因为你正在执行

document.getElementById('quickstart-account-details').textContent = JSON.stringify(user, null, ' ');

填充user之前。

如果是这样,尝试执行if (user) {}块内的上述代码。

+0

这就是它目前所在的位置 – PhpDude

+0

您可以验证块是否正在执行? (即添加一个控制台日志'if(用户){...}' –

+0

它没有控制台注销是的,我可以像用户[“uid”]访问uid,它给了我登录的用户uid - 但如果我尝试去displayName它回来作为NULL – PhpDude