[英]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.