我试图避免覆盖,制定规则的最佳方法是什么?
此规则不起作用
service cloud.firestore {
match /databases/{database}/documents {
match /audio/{title} {
allow read;
allow write: if request.resource.data.id != resource.data.id;
}
}
}
我尝试了这条规则但它无效request.resource.id != resource.id;
答案 0 :(得分:2)
查看Security Rules reference文档。特别是关于allow
声明的部分。
Cloud Firestore中有三种写入操作:
create
,update
和delete
。这些对应于set()
,add()
,update()
, 客户端库中的remove()
和transaction()
方法。为您 方便写操作允许所有这些。// Writes are divided into create, update, and delete operations allow create, update, delete: if <condition>; // This is equivalent to using the write operation allow write: if <condition>;
在这里,您将看到allow write
是所有3种类型突变的便捷捷径。对于您的用例,您需要以下内容:
allow create: if <condition>;
allow update, delete: if false;