angular - 火存储 : Missing or insufficient permissions

标签 angular ionic-framework google-cloud-firestore

我正在使用角色(允许读取,写入:如果 request.auth.uid!= null ),当我登录时,我获取数据没问题,但是当我注销用户时,我收到错误:缺少权限或权限不足。首先我认为这是因为我没有取消订阅我尝试过的 Observable (rxjs/operator/takeWhile),即使我使用了异步管道,我也得到了同样的错误。

最佳答案

如果您已注销,则 request.auth.id == null,因此,您的读取规则返回 false。 尝试更改为:

allow read;
allow create: if request.auth.uid != null; 

这允许任何人读取并且只有经过身份验证的用户才能创建。您通常只希望作者更新。为此,您需要将文档中作者的 uid 保存为 userid 之类的属性,然后您可以像这样更新规则:

match /myCollection/{document=**} {
  allow read;
  allow create: if request.auth.uid != null; 
  allow update: if isOwner();
}

function existingData() {
  return resource.data
}

function isOwner() {
  return request.auth.uid == existingData().userid;
}

关于angular - 火存储 : Missing or insufficient permissions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49623045/

相关文章:

javascript - 当客户端不在同一 IP 上时,无法通过客户端调用 Node 服务器

html - Charset UTF 8 在与 Ionic Framework 一起使用时不起作用

javascript - 如何在 firestore 中存储重复数据?

angular - Swagger/OpenAPI : How to integrate generation of typescript/angular client in build process?

Angular 8 Intercept 调用刷新 token

css - 向 ngClass 添加第三个条件不起作用

cordova - 使用 Azure 应用服务移动应用或 Azure 移动服务离线同步 SQLite(Xamarin、Ionic、PhoneGap)

arrays - Firestore - 将数据附加到结构内的单个值

java - 删除 Cloud Firestore 数据库中的集合时建议使用哪些参数?

javascript - 数组有项目,但找不到长度