我发现使用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();
}
}
如何以更好的方式使用用户可观察对象?
答案 0 :(得分:2)
由于authState
返回一个observable,你需要订阅以获取值:
ngOnInit() {
this.afAuth.authState.subscribe(auth => {
if (auth) {
console.log('LOGGED IN', auth);
} else {
console.log('NOT LOGGED');
}
}