我如何添加一个Firebase侦听器,该侦听器将等到Firebase身份验证加载完毕?

时间:2020-10-06 17:15:31

标签: javascript firebase firebase-authentication

addEventListener('DOMContentLoaded', ()=>{
    if(firebase.auth().currentUser == null)
        document.getElementById("loggedOut").hidden = false;

    else
        document.getElementById("loggedIn").hidden = false;    
});

它会再次加载firebase auth数据库,因此当我运行此代码时,它将始终说firebase.auth().currentUser == null是真实的。 即使我按下按钮来打印firebase.auth().currentUser,它也会给我真正的答案。

1 个答案:

答案 0 :(得分:0)

documentation中所述,您应该使用auth状态侦听器在已知当前用户时获取回调:

firebase.auth().onAuthStateChanged(function(user) {
  if (user) {
    // User is signed in.
  } else {
    // User is signed out.
  }
});

firebase.auth().currentUser在第一次调用此回调之前是不准确的,因此您应依赖此回调来正确呈现UI。