首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Firebase-firestore安全规则/文档摆动

Firebase-firestore安全规则/文档摆动
EN

Stack Overflow用户
提问于 2021-08-25 18:45:51
回答 1查看 81关注 0票数 1

Firebase-Firestore拒绝所有请求,而不是拒绝不符合数据Firebase-Firestore安全规则的特定文档

代码语言:javascript
复制
allow read: if authenticated() && resource.data.status == true || author(resource.data.creatorid) || admin();

我试图实现的是只有status = true文档才会出现

错误

代码语言:javascript
复制
Unhandled Exception: [cloud_firestore/permission-denied] The caller does not have permission to execute the specified operation.

使用paginate_firestore flutter软件包

代码语言:javascript
复制
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检索的文档为零。屏幕显示正在加载

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-25 19:29:47

我认为错误是由状态未设置为true的文档引发的。尝试在查询中添加where子句,以获取状态为true的文档。

代码语言:javascript
复制
query:
      FirebaseFirestore.instance.collection('members').where("status", isEqualTo: true).orderBy('title')

当涉及到向作者显示他们自己的请求时,您可以添加一个where来检查作者ID是否等于当前登录的用户ID。

代码语言:javascript
复制
query:
      FirebaseFirestore.instance.collection('members').where("authorId", isEqualTo: "currentUserId").orderBy('title')

还可以尝试使用括号中的逻辑或对条件进行包装:

代码语言:javascript
复制
allow read: if authenticated() && (resource.data.status == true || author(resource.data.creatorid) || admin());
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68928339

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档