我的firebase-app需要安全规则。我的数据看起来像这样
{
owner = "djskjfskdjf",
data = "some data"
}
收集路径是/Data/
我希望经过身份验证的用户可以读取和创建此集合中的文档。要编辑或删除文档,我希望字段所有者中的uid与request.auth.id相同。
根据firebase文档,这应该可以工作:
service cloud.firestore {
match /databases/{database}/documents {
match /Data/{document=**} {
allow read, create: if request.auth.uid != null;
allow delete, write: if request.auth.uid == request.resource.data.owner;
}
}
}
但是,当我尝试在仿真中更新字段时,出现了以下错误: Error: simulator.rules line [5], column [51]. Property resource is undefined on object.
希望您能帮我解决这个问题。
如果您的请求没有发送您正在检查规则中的所有必填字段,则将request.resource.data.owner
无法正常工作(例如,如果您只是发送数据而不是请求的所有者)。
您应该使用以下样式来匹配数据库中的现有对象。请求是否忽略所有者信息都没关系。allow delete: if resource.data.owner == request.auth.uid;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句