【问题标题】:firestore : Missing or insufficient permissionsfirestore :权限缺失或不足
【发布时间】:2018-09-12 08:45:37
【问题描述】:
我正在使用角色(允许读取,写入:如果 request.auth.uid != null)当我登录时我得到数据没问题,但是当我注销用户时我得到错误:缺少或权限不足.首先我认为这是因为我没有取消订阅我尝试过的 Observable (rxjs/operator/takeWhile),即使我使用了异步管道,我也得到了同样的错误。
【问题讨论】:
标签:
angular
ionic-framework
google-cloud-firestore
【解决方案1】:
如果您已注销,则 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;
}