【问题标题】:$firebaseAuth().$getAuth() returns a null$firebaseAuth().$getAuth() 返回 null
【发布时间】:2017-04-07 10:32:45
【问题描述】:
var firebaseUser = $firebaseAuth().$getAuth();
if (firebaseUser) {
console.log("Signed in as:", firebaseUser.uid);
} else {
  console.log("Signed out");}

在我刷新页面 2 次后返回 null,即使用户仍处于登录状态。如果我获得 Firebase 用户的 UID 以在我的实时数据库中添加一些数据,因为它是 null ,我的应用会出错

【问题讨论】:

    标签: angularjs firebase firebase-authentication angularfire


    【解决方案1】:

    要获取当前用户,您应该这样做:

    var user = firebase.auth().currentUser;
    
    if (user) {
      // User is signed in.
    } else {
      // No user is signed in.
    }
    

    或者您可以处理身份验证:

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

    所有这些信息都来自here

    【讨论】:

    • 我之前多次使用过这个 onAuthStateChanged 但有时它会在更新我的数据库时特别弄乱我的应用程序,我用它来获取当前用户。我真正想知道的一件事是获取用户对象并在 onauthstatechange 之外使用它
    • 可以通过第一个代码段获取用户对象
    • 请注意,您应该只参考currentUser您最初处理了至少一个onAuthStateChanged,此属性将是null,直到您的应用程序完成与 Firebase 的连接
    • @Phil 的评论非常重要,我遇到了这个问题,并没有意识到在currentUser 填充数据之前没有建立连接
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-05
    • 2019-04-08
    • 2019-05-23
    • 1970-01-01
    • 2018-06-07
    相关资源
    最近更新 更多