【问题标题】:How to get the firebase.User in AngularFire2如何在 AngularFire2 中获取 firebase.User
【发布时间】:2017-01-27 17:31:07
【问题描述】:

我正在使用 AngularFire2 (Ionic2) 和 Firebase 身份验证。

我在尝试获取当前用户时遇到问题。对我有用,但不一致。有时它被填充,有时它为空。

let user: firebase.User = firebase.auth().currentUser;

有没有办法让当前用户更加一致?

更多信息:

我的登录方式如下:

import { FirebaseAuth, AuthProviders, AuthMethods } from 'angularfire2';

public auth: FirebaseAuth

    this.auth.login({
      provider: AuthProviders.Google,
      method: AuthMethods.Popup
    }).then((data: any) => {
            this.fireAuth.onAuthStateChanged((user) => {
                        ....
            });
    });

这里总是填充用户。但是我需要访问用户的地方是在代码的另一部分。

任何帮助表示赞赏。

更新

我尝试使用以下方法获取当前用户:

    this.auth.subscribe((authData) => {
      let user = authData.auth;
        credential = firebase.auth.GoogleAuthProvider.credential(googleIdToken, googleAccessToken);
        user.reauthenticate(credential).then(() => {...
    });

但是当我尝试创建凭据时,我收到以下错误:

异常:未捕获(承诺中):错误:重新验证失败:首先 参数“凭据”必须是有效的凭据。

当我在第一种方法中获取当前用户时,我没有收到任何错误并且它有效。

更多信息:

当我console.log 以下user 对象时,它们看起来都一样:

  let user: firebase.User = this.fireAuth.currentUser;
  console.log(user);

    this.auth.subscribe((authData) => {
            let user: firebase.User = authData.auth;
            console.log(user);
    });

但一个有效(当不为空时),另一个无法重新验证。

【问题讨论】:

  • 当你尝试login 时,你为什么要尝试reauthenticate?在login 过程中,您如何reauthenticate

标签: angular firebase ionic2 firebase-authentication angularfire2


【解决方案1】:

注意有一个新的 AngularFire 版本。 (4.0.0)

在新版本中,所有模块都被拆分了。这意味着,您需要使用AngularFireAuth

构造函数(afAuth:AngularFireAuth){ afAuth.authState.subscribe(auth => { 如果(身份验证){ console.log('登录'); } 别的 { console.log('未登录'); } }); }

希望能帮到你

【讨论】:

    【解决方案2】:

    我找到this simple approach to work

    constructor(af: AngularFire) {
      af.auth.subscribe(auth => {
        if(auth) {
          console.log('logged in');
        } else {
          console.log('not logged in');
        }
      });
    }
    

    更多关于AngularFire2 Authentication Github*

    • 免责声明:我的项目。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-18
      • 1970-01-01
      • 1970-01-01
      • 2017-02-23
      • 2017-07-15
      • 2018-12-07
      • 2017-01-16
      • 2018-03-17
      相关资源
      最近更新 更多