首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >固定恢复规则查询FirebaseError:[代码=权限拒绝]:缺少权限或权限不足

固定恢复规则查询FirebaseError:[代码=权限拒绝]:缺少权限或权限不足
EN

Stack Overflow用户
提问于 2022-11-23 11:07:32
回答 1查看 17关注 0票数 0

我在消防局有个“邮件”收藏品。我正在尝试设置安全规则,以便只有所有者作者可以根据字段中的uid访问控制。

/mail/unique_id

代码语言:javascript
运行
复制
{
author: "RPH6j0eZc2QrDhvsQJhDDFApjnj1"
date: "2022-11-23T10:57:13.580Z"
status: "ongoing"
}

消防局规则:

代码语言:javascript
运行
复制
match /mail/{mailId}{
  allow read, write: if request.auth != null && request.auth.uid == resource.data.author;

 }

功能岗位

代码语言:javascript
运行
复制
this.db.collection('mail').add(data)

从收集邮件中读取

代码语言:javascript
运行
复制
  this.db.collection('mail',ref=>ref.where('author','==',this.uid)).get().subscribe(res => { })

结果:我可以从防火墙数据库中读取数据,但是,当我试图推送新的数据时,我会出错。

代码语言:javascript
运行
复制
FirebaseError: [code=permission-denied]: Missing or insufficient permissions.
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-23 11:23:17

我可以从消防局数据库中读取数据,但是,当我试图推送新数据时,我会出错。

这是因为对于读取规则,您必须使用resource.data,但是对于规则,您需要使用request.resource.data

所以你需要分成两条规则:

代码语言:javascript
运行
复制
match /mail/{mailId}{
   allow read: if request.auth != null && request.auth.uid == resource.data.author;
   allow write: if request.auth != null && request.auth.uid == request.resource.data.author;
 }

文档中的更多细节。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74545826

复制
相关文章

相似问题

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