Firebase身份验证:重新加载页面时无法读取数据

时间:2020-07-03 20:35:47

标签: javascript angular firebase ionic-framework google-cloud-firestore

我有一个Angular / Ionic应用程序,其中我使用Firebase / Firestore托管/数据库。我有一个登录页面,在此之前,我首先使用电子邮件和密码进行身份验证,然后才能查看任何数据。一切正常。但是,每当我重新加载/刷新页面时,都会出现错误“ ERROR FirebaseError:缺少权限或权限不足”。但是,当我导航到另一个页面时,似乎又重新建立了与Firebase的连接。

这是auth.service.ts代码的一部分:

...
import { AngularFireAuth } from "@angular/fire/auth";
import { AngularFirestore, AngularFirestoreDocument } from '@angular/fire/firestore';
...
  constructor(
    public afs: AngularFirestore,
    public afAuth: AngularFireAuth,
    public router: Router,  
    public ngZone: NgZone
  ) {    
    // Saving user data in local storage when 
    // logged in and setting up null when logged out
    this.afAuth.authState.subscribe(user => {
      if (user) {
        this.userData = user;
        localStorage.setItem('user', JSON.stringify(this.userData));
      } else {
        localStorage.setItem('user', null);
      }
    })
  }

  // Sign in with email/password
  async signIn(email, password) {    
    this.afAuth.setPersistence('session').then(() => {
      return this.afAuth.signInWithEmailAndPassword(email, password)
        .then(async res => {
          await this.setUserData(res.user);
          this.ngZone.run(() => {
            this.router.navigate(['/home']);
          });
        }).catch(err => {
          window.alert(err.message);
        })
    })
  }
...

对于页面重新加载按钮,它只是一个简单的location.reload()

0 个答案:

没有答案
相关问题