Angular2中的Facebook和Firebase身份验证

时间:2017-08-31 12:27:24

标签: facebook angular typescript firebase firebase-authentication

我发现使用Angular2的firebase和facebook身份验证存在一些问题。我创建了这个方法来验证用户是否登录了控制台,但我认为这不是正确的方法,因为控制台没有报告正确的值。

所以这是我的代码:

export class AppComponent {
  user: Observable<firebase.User>;

  constructor(private afAuth: AngularFireAuth, private db: AngularFireDatabase) {
  }

  ngOnInit() {
    this.user = this.afAuth.authState;
    if (this.user)
      console.log('NOT LOGGED');
    else
      console.log('LOGGED IN', this.afAuth.authState);
  }

  login() {
    this.afAuth.auth.signInWithPopup(new firebase.auth.FacebookAuthProvider())
      .then((res) => console.log(res));
  }

  logout() {
    this.afAuth.auth.signOut();
  }
}

如何以更好的方式使用用户可观察对象?

1 个答案:

答案 0 :(得分:2)

由于authState返回一个observable,你需要订阅以获取值:

ngOnInit() {
  this.afAuth.authState.subscribe(auth => {
    if (auth) {
      console.log('LOGGED IN', auth);
    } else {
      console.log('NOT LOGGED');
  }
}