angularjs - Firebase 3.身份验证不持久

标签 angularjs firebase firebase-authentication angularfire2

我正在 angularJS 应用程序中使用 firebase,使用电子邮件和密码身份验证。 我刚刚将我的应用程序从 Firebase 2.x 更新到 3.x,并将 AngularFire 从 1.x 更新到 2.x。

我按照这两个文档进行迁移:

但是现在,每次刷新页面时,我都需要重新进行身份验证,就像没有持久 session 一样。

我检查了 localStorage key firebase:authUser 我过去有一个 expirationTime (实际上它是用我的登录时间戳设置的)。

要检查用户是否已登录,我使用:$firebaseAuth().$getAuth()

编辑

这是我的问题的一个工作示例(登录名: [email protected] /密码:toto123) https://plnkr.co/edit/463Hse?p=preview

有人知道为什么会出现这种行为吗?

最佳答案

我猜您正在直接检查 currentUser,而不等待初始身份验证状态解析。您需要添加一个观察者:

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

https://firebase.google.com/docs/auth/web/manage-users

此外,身份验证状态存储在网络存储中,因此请确保已启用该功能。 (例如,状态不会在 Safari 私有(private)模式浏览中持续存在)。

关于angularjs - Firebase 3.身份验证不持久,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38879528/

相关文章:

javascript - 单击此元素后,在另一元素之后插入指令模板

java - 将接收到的数据集导出到数组

android - 如何将对象列表写入 firebase?

javascript - 之后添加 Facebook 范围

flutter - 通过 Flutter for Firebase 重新发送验证

angularjs - 提高 Angular 应用程序中的 TinyMCE 性能

javascript - 客户端无法访问自己的服务器端点

javascript - 如何将返回的 Firebase 数据设置为 AngularJS 中的 $scope 变量?

javascript - Firebase 存储错误 : 404 - ACCESS_BUCKET

Swift:如何在创建新用户之前检查用户的电话号码是否已经在 Firebase 数据库中