service cloud.firestore {
match /databases/{database}/documents {
match /col1/doc1 {
allow write: if resource.data.description.length <= 100;
match /subcollection1/{doc=**} {
allow write: if resource.data.description.length <= 100;
}
}
}
}
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read: if true;
allow write: if request.resource.data.get('description', '').size() < 256;
}
}
}
3条答案
按热度按时间yrwegjxp1#
我试着从另一个答案中得到验证,但是没有成功。Firestore只是不喜欢检查资源数据值的.length。
我四处寻找,这篇文章帮了我:https://fireship.io/snippets/firestore-rules-recipes/
frebpwbc2#
对于Cloud Firestore,您可以使用以下命令 * 验证 *
description
字段不超过100个字符:这适用于
col1/doc
和subcollection1
中的所有文档。请注意,这些规则不会限制说明的长度,因为安全规则不能修改写入的数据。相反,规则会拒绝说明长度超过100个字符的写入。(据我所知)没有办法只对一个文档的 * 每个 * 子集合应用规则,我所知道的最接近的方法是对所有文档及其子集合应用规则:
这将验证应用于
col1
中的所有文档及其下的所有子集合。pieyvz9o3#
在Firebase文档中,特别是对于Firestore,似乎可以使用Map接口的get()函数。
例如:
截至2023年2月的文档可在此处找到