我正在使用Role(允许读取,写入:if request.auth.uid!= null)当我登录时我得到的数据没问题,但是当我注销用户时我收到错误:权限丢失或不足。首先我认为这是因为我没有取消订阅我试过的Observable(rxjs / operator / takeWhile),即使我使用了异步管道,我也得到了同样的错误。
答案 0 :(得分:0)
如果您注销,则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;
}