我有一个angular应用程序正在使用“@angular/fire”:“^6.1.5”,
一切正常,我可以登录到我的应用程序并从firestore获取记录,唯一的问题是当我重新加载浏览器页面时,出现错误“firebaseerror:缺少或权限不足”
这是我用来登录的服务代码
import { Injectable } from '@angular/core';
import { AngularFireAuth } from '@angular/fire/auth';
@Injectable({
providedIn: 'root'
})
export class FirebaseService {
isLoggedIn = false
constructor(public firebaseAuth : AngularFireAuth) {
this.firebaseAuth.setPersistence("local")
}
async signin(email: string, password: string){
await this.firebaseAuth.signInWithEmailAndPassword(email, password)
.then(res => {
this.isLoggedIn = true
localStorage.setItem('user', JSON.stringify(res.user))
}).catch(e => {
});
}
async signup(email: string, password: string){
await this.firebaseAuth.createUserWithEmailAndPassword(email, password)
.then(res => {
this.isLoggedIn = true
localStorage.setItem('user', JSON.stringify(res.user))
})
}
logout(){
this.firebaseAuth.signOut()
this.isLoggedIn = false
localStorage.removeItem('user')
}
}
我使用Angular 布线,当我导航到http://localhost:4200/products 通过单击链接,一切正常,但当我刷新浏览器时,会出现错误
导航单击链接效果良好,只是刷新时出现问题
这是获取产品的代码
constructor(public db: AngularFirestore) {
this.recordsCollection = this.db.collection('products', ref => ref.orderBy('date_created').limit(100));
this.records = this.recordsCollection.snapshotChanges().pipe(
map(actions => actions.map(a => {
const data = a.payload.doc.data() as Product;
const id = a.payload.doc.id;
const doc = a.payload.doc
return { id, doc, ...data };
}))
);
}
这是我在firestore的规则
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, update, write: if request.auth != null;
}
}
}
1条答案
按热度按时间xqk2d5yq1#
在多次尝试更改代码后,我决定更新所有npm依赖项,现在项目按预期工作,刷新浏览器后没有错误
angular项目可以很好地使用此版本
因此,它似乎是来自特定angular/core和angularfire2版本的bug