Firebase 3 - ref.getAuth()等效

Dom*_*nic 6 javascript firebase firebase-authentication

在Firebase 2中,我能够进行同步检查以查看用户是否已登录,例如:

if (!ref.getAuth()) ..go to login page
else ..show page
Run Code Online (Sandbox Code Playgroud)

我可以访问该currentUser州,firebase.auth().currentUser所以我试图这样做:

if (!firebase.auth().currentUser) ..go to login page
else ..show page
Run Code Online (Sandbox Code Playgroud)

问题是它始终是null,因此它会重定向到登录页面,然后片刻之后onAuthStateChanged会发生并且用户已登录.

还有办法同步检查吗?或者是否有我可以听的承诺,以便我可以展示装载微调器或什么?谢谢.

Fra*_*len 4

我一直在使用身份验证状态侦听器来确定用户是否已登录。

  auth.onAuthStateChanged(function(user) {
    console.log('authStateChanged', user);
    if (user) {
      console.log("Welcome UID:" + user.uid);
    }
  });
Run Code Online (Sandbox Code Playgroud)

当您立即附加该侦听器时,它将以正确的状态触发。

当我运行应用程序、登录并重新加载页面时,日志输出:

authStateChanged 佛罗里达州 {...}

欢迎UID:052289713245805425655890E9024AB4ADBA5404B3C0

因此,您可以使用第一次调用侦听器来检测用户是否已经登录。