Angular Firebase身份验证状态始终返回null

时间:2018-08-17 06:00:31

标签: firebase ionic-framework firebase-authentication angularfire2

我试图在我的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。有帮助吗?

0 个答案:

没有答案