现在我使用AngularJs 4.x和Firebase身份验证,现在我在组件启动后遇到问题,我可以获取用户信息。
我不知道调用此API有什么意义,
https://www.googleapis.com/identitytoolkit/v3/relyingparty/getAccountInfo?key=xxx
但是在组件初始化之后,我可以获取用户信息。所以我无法检查用户是否已登录。
export class HomeComponent implements OnInit {
ngOnInit() {
if(this.authenticationService.getUser()) {
}else{
// false always because this code will be run before calling the getAccountInfo API
}
}
}
AuthenticationService看起来像这样,
@Injectable()
export class AuthenticationService {
public token: string;
constructor(
private fb: AngularFireDatabase,
private afAuth: AngularFireAuth
) {
afAuth.auth.onAuthStateChanged((user: any) => {
console.log('state changed', user);
this.user = user;
});
}
getUser() {
return this.afAuth.auth.currentUser;
}
login() { ... }
如何在运行任何组件之前先获取用户信息?