firebaseerror:仅在重新加载页面时缺少权限或权限不足

pkwftd7m  于 2021-09-29  发布在  Java
关注(0)|答案(1)|浏览(399)

我有一个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;
          }
        }
      }
xqk2d5yq

xqk2d5yq1#

在多次尝试更改代码后,我决定更新所有npm依赖项,现在项目按预期工作,刷新浏览器后没有错误
angular项目可以很好地使用此版本

"@angular/core": "^12.0.5",
  "@angular/fire": "^6.1.5",
  "angularfire2": "^5.4.2",
  "firebase": "^8.7.1",

因此,它似乎是来自特定angular/core和angularfire2版本的bug

相关问题