如何定义 Firebase 上的权限

问题描述 投票:0回答:1

当我尝试在 Firebase Firestore 上进行查询时遇到权限问题。

这是执行查询的代码。

Future<void> fetchData() async {
    FirebaseFirestore db = FirebaseFirestore.instance;
    CollectionReference diariosRef = db.collection("diarios");
    QuerySnapshot feveireiro = await diariosRef
        .where("data_publicacao",
            isGreaterThanOrEqualTo: DateTime(1, DateTime.november, 2023))
        .get();
    for (var doc in feveireiro.docs) {
      print(doc.data());
    }
  }

我收到此错误:

E/flutter ( 7158): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] 未处理的异常:[cloud_firestore/permission-denied] 调用者没有执行指定操作的权限。

这就是我的 Firebase 中权限规则的设置方式:

rules_version = '2';

service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if true;
    }
  }
}

我也使用 Cloud Storage 和 Firebase Auth,但 Cloud Storage 具有相同的规则。

出了什么问题?

flutter google-cloud-firestore firebase-authentication firebase-security
1个回答
0
投票

您的规则应该允许任何访问,但如果您想专门向日记添加权限,您可以尝试:

rules_version = '2';

service cloud.firestore {
  match /databases/{database}/documents {
    match /diarios/{document=**} {
      allow read, write: if true;
    }
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.