【问题标题】:Angular + Firebase : "Missing or insufficient permissions." on page refreshAngular + Firebase:“权限缺失或不足。”页面刷新时
【发布时间】:2022-01-24 19:10:56
【问题描述】:
  • 我正在使用 Firebase 身份验证服务。

  • 我正在使用一些在我使用应用程序时有效的基本规则

  • 我有一个从 Firebase 获取数据的服务:

    export class WorkoutService {
      myWorkoutList: any[] = [];
    
      constructor(private firestore: AngularFirestore) {}
    
      fetchWorkouts() {
        this.firestore
          .collection('performances)
          .doc(emailAddress)
          .collection('myDocumentCollection')
          .valueChanges()
          .subscribe( (allWorkoutElements) => {
    
            this.myWorkoutList = allWorkoutElements;
            // some HEAVY logic (: ...
    
          });
      }
    }
    

问题是:每当我重新加载我的页面时,我都会收到一条错误消息:

错误:权限缺失或不足。

我发现的解决方法是为我的服务调用添加延迟: setTimeout( () => this.fetchWorkouts(), 500);

刷新后,Firebase 身份验证似乎需要时间来“设置”,因此我对 Firebase 的请求被拒绝。 如何等待 Firebase 身份验证完成后再进行提取?

【问题讨论】:

    标签: angular firebase firebase-security


    【解决方案1】:

    如何等待 Firebase 身份验证完成后再进行提取?

    标准方法是设置身份验证状态观察器,如doc 中所述:

    firebase.auth().onAuthStateChanged((user) => {
      if (user) {
        // Here the user is signed in 
        // Do you fetch
      } else {
        // User is signed out
        // ...
      }
    });
    

    【讨论】:

    • 我有一个 AuthService,但是当我重新加载页面时它不会触发。
    猜你喜欢
    • 2019-10-24
    • 2020-10-14
    • 1970-01-01
    • 2021-09-23
    • 2022-01-06
    • 2018-09-12
    • 2018-03-17
    • 2020-09-25
    相关资源
    最近更新 更多