当我尝试在 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 具有相同的规则。
出了什么问题?
您的规则应该允许任何访问,但如果您想专门向日记添加权限,您可以尝试:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /diarios/{document=**} {
allow read, write: if true;
}
}
}