[英]Firebase-firestore security rules per document flutter
Firebase-Firestore 拒絕所有請求而不是拒絕不符合數據 Firebase-Firestore 安全規則的特定文檔
allow read: if authenticated() && resource.data.status == true || author(resource.data.creatorid) || admin();
我想要實現的只是 status = true 文件會出現
錯誤
Unhandled Exception: [cloud_firestore/permission-denied] The caller does not have permission to execute the specified operation.
使用 package paginate_firestore flutter
PaginateFirestore(
itemsPerPage: 5,
key: key,
shrinkWrap: true,
physics: ClampingScrollPhysics(),
itemBuilderType: PaginateBuilderType.listView,
itemBuilder: (index, context, documentSnapshot) {
final data = documentSnapshot.data() as Map?;
return MainComponent(
data: data,
);
},
query:
FirebaseFirestore.instance.collection('members').orderBy('title'),
isLive: false,
);
從 Firestore 檢索到的零文檔。 屏幕只是顯示正在加載
我認為錯誤是由狀態未設置為 true 的文檔引發的。 嘗試在您的查詢中添加一個 where 子句,以獲取狀態為 true 的文檔。
query:
FirebaseFirestore.instance.collection('members').where("status", isEqualTo: true).orderBy('title')
在向作者顯示他們自己的請求時,您可以添加一個 where 來檢查作者 ID 是否等於當前登錄的用戶 ID。
query:
FirebaseFirestore.instance.collection('members').where("authorId", isEqualTo: "currentUserId").orderBy('title')
還可以嘗試將條件用邏輯或括號括起來:
allow read: if authenticated() && (resource.data.status == true || author(resource.data.creatorid) || admin());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.