未捕获的TypeError:无法读取null的属性'uid'

时间:2019-12-01 19:31:34

标签: javascript firebase firebase-authentication

我不知道为什么UID返回null。 userSessionCheck()包含用于在登录后保留会话的代码。 user.uid给出相同的结果,下面是我的代码和错误代码

-

未捕获的TypeError:无法读取null的属性“ uid”

  $(document).ready(function(){
  auth = firebase.auth();
  db = firebase.database();
  storage = firebase.storage();
  userInfo = auth.currentUser;


  userSessionCheck();
  update_profile();


  function update_profile() {

    var mypage_Ref = db.ref('users/' + userInfo.uid).once('value').then(function(snapshot){
      console.log(snapshot.val());
      profileImageUrl = $('#update_email').val(snapshot.val().profileImageUrl);
      email = $('#update_email').val(snapshot.val().email);
      u_name = $('#update_name').val(snapshot.val().username);
      job = $('#update_job').val(snapshot.val().job);


      var html =
      '<div class="profile">' +
       '<img src="'+profileImageUrl+'" id="profile_img">'+

       '<div class="form_g">'+
         '<label>email</label>'+
        '<input type="text" style="text-align: center" id="update_email" placeholder="'+ email +'">'+
       '</div>'+
       '<div class="form_g">'+
         '<label>name</label>'+
         '<input type="text" style="text-align: center" id="update_name" placeholder="'+u_name+'">'+
       '</div>'+
       '<div class="form_g">'+
         '<label>job</label>'+
         '<h5 id="update_job">'+job+'</h5>'+
       '</div>'+
       '<button type="button" class="s-btn" id="info_submit" style="width: 100%; margin-top: 30px;">update</button>'+
      '</div>';

      $('#profile_form').append(html);


    });
  }
});

enter image description here

1 个答案:

答案 0 :(得分:1)

userInfo = auth.currentUser为您提供null,这意味着userInfo.uid将给出该错误。当auth.currentUser为null时,表示没有用户登录。在加载新页面时,不会立即登录该用户,因此您应使用auth state observer来确定何时首次登录该用户帐户可用。