【问题标题】:Get if a user is authenticated on Firebase initializeApp获取用户是否在 Firebase initializeApp 上通过身份验证
【发布时间】:2016-12-05 07:20:12
【问题描述】:

当我这样做时:

firebase.initializeApp(config);
firebase.auth().currentUser;

刷新几毫秒后的第一次 currentUser 为空。 但后来 currentUser 值被填充。当然,以前我在没有注销的情况下进行了身份验证。

如何初始化App 并等到我真正知道用户是否登录?我的意思是 firebase.initializeAppfirebase.auth() 不是承诺。 是否有任何承诺知道用户是否已登录?我找不到。

【问题讨论】:

    标签: javascript firebase firebase-authentication


    【解决方案1】:

    我现在经常使用onAuthStateChanged() 处理程序来检测用户是否已登录。

      firebase.initializeApp(config);
      firebase.auth().onAuthStateChanged((user) => {
          if (user == null) {
              // TODO: start sign-in flow
          }
          else {
              // TODO: start actual work
          }
        }
      });
    

    【讨论】:

    • 但是即使用户从未登录过也会调用 onAuthStateChanged?
    • 是的。它会立即以初始/当前已知状态调用,然后在状态更改时调用。试试看!
    • 这就是它的完成方式。 .onAuthStateChanged “通过使用观察者,您可以确保 Auth 对象在获取当前用户时不处于中间状态(例如初始化)。” Manage Users in Firebase。顺便说一句-我有一个Web auth boilerplate on Github。演示here.
    猜你喜欢
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 2018-12-28
    • 1970-01-01
    • 1970-01-01
    • 2016-12-29
    • 2021-05-01
    相关资源
    最近更新 更多