javascript - Firebase 3 - ref.getAuth() 等效

标签 javascript firebase firebase-authentication

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

if (!ref.getAuth()) ..go to login page
else ..show page

我可以使用 firebase.auth().currentUser 访问 currentUser 状态,所以我尝试这样做:

if (!firebase.auth().currentUser) ..go to login page
else ..show page

问题是它最初总是空的,所以它重定向到登录页面,然后几分钟后 onAuthStateChanged 发生并且用户登录。

还有办法同步检查这个吗?或者是否有我可以听取的 promise ,以便我可以显示加载微调器或其他东西?谢谢。

最佳答案

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

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

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

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

authStateChanged Fl {...}

Welcome UID:052289713245805425655890E9024AB4ADBA5404B3C0

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

关于javascript - Firebase 3 - ref.getAuth() 等效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37367640/

相关文章:

javascript - Firebase - 重定向到不同页面时保持用户登录

javascript - Angular JS "Controller as"语法不起作用

javascript - jquery 验证 : Programmatically selecting radio button does not hide validation message

android - 从android中的firebase发送通知时没有通知声音

ios - 设备上未验证的电子邮件 (Firebase)

javascript - Firebase 身份验证错误 : auth/invalid-credential

firebase - 为什么在 Firebase 中使用 UID?我应该使用它吗

javascript - 复选框更改 : update html with current checked elements

php - 如何在同一页面中显示html输出?

javascript - 具有嵌套 promise 的 Firebase 云函数