我试图在我的离子应用程序中创建对firebase的匿名登录 . 这是我的身份验证服务 .
@Injectable()
export class AuthService {
public authState: any = null;
public UserId: any;
constructor(public angularFireAuth: AngularFireAuth,
private firestoreUser: FirestoreUserProvider) {
this.angularFireAuth.authState.subscribe((auth) => {
this.authState = auth
if (this.authState)
this.UserId = this.authState.uid;
});
}
get isUserAnonymousLoggedIn(): boolean {
return (this.authState !== null) ? this.authState.isAnonymous : false
}
get currentUserId(): string {
return (this.authState !== null) ? this.authState.uid : '';
}
anonymousLogin() {
return this.angularFireAuth.auth.signInAnonymously()
.then((user) => {
this.authState = user;
this.updateUserData(user.uid);
})
.catch(error => console.log(error));
}
signOut(): void {
this.angularFireAuth.auth.signOut();
}
updateUserData(UserId: any): void {
this.firestoreUser.createUser(UserId);
}
}
虽然尝试登录以下代码工作正常,但页面刷新和登录页面再次显示 .
this.authService.angularFireAuth.authState.subscribe(user => {
if (!user) {
console.log('user is not logged in!');
this.navCtrl.setRoot(AnonymousLoginPage)
}
})
表示subscribe方法始终返回null . 有帮助吗?