我试图在我的Ionic应用程序中创建匿名登录到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)
}
})
表示subscription方法始终返回null。有帮助吗?