我有一个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()
。