仅允许空文档的 Firestore 安全规则
Firestore security rule that only allows empty documents
我基本上是在尝试使用 firestore 集合作为电子邮件列表。任何人都可以创建一个以电子邮件作为 ID 的文档,仅此而已。棘手的部分是“仅此而已”。当请求中没有提供数据时,request.resource
是 undefined
,据我所知,您无法在安全规则中进行检查。这可能吗?或者是否有必要为这个用例设置一个必填字段?
空文件经常会导致问题。为什么不需要单个标记字段,并在规则中对其进行验证?
request.resource.data.keys.hasOnly("marker")
为了其他希望在 firestore 中创建电子邮件列表的人的利益,这是我最终使用的完整规则:
match /email-list/{email} {
allow get: if true;
allow list: if false;
allow create: if request.resource.data.keys().hasOnly(["marker"])
&& request.resource.data.marker == true
}
我基本上是在尝试使用 firestore 集合作为电子邮件列表。任何人都可以创建一个以电子邮件作为 ID 的文档,仅此而已。棘手的部分是“仅此而已”。当请求中没有提供数据时,request.resource
是 undefined
,据我所知,您无法在安全规则中进行检查。这可能吗?或者是否有必要为这个用例设置一个必填字段?
空文件经常会导致问题。为什么不需要单个标记字段,并在规则中对其进行验证?
request.resource.data.keys.hasOnly("marker")
为了其他希望在 firestore 中创建电子邮件列表的人的利益,这是我最终使用的完整规则:
match /email-list/{email} {
allow get: if true;
allow list: if false;
allow create: if request.resource.data.keys().hasOnly(["marker"])
&& request.resource.data.marker == true
}