nal*_*ply 2 projection firebase-security google-cloud-firestore
我正在试验 Cloud Firestore 安全规则。是否可以过滤文档字段?
例如,如果您有一个文档
{
name: "John Doe",
email: "doe@example.com"
}
Run Code Online (Sandbox Code Playgroud)
那么某些用户就不允许使用电子邮件地址获取文档。他们的申请要求文件
firebase.firestore.doc('users/doe-uid')
Run Code Online (Sandbox Code Playgroud)
并得到这个文件
{
name: "John Doe",
}
Run Code Online (Sandbox Code Playgroud)
如果是,如何?
我认为应该是可能的,因为Cloud Firestore 安全规则参考在第一句话中说(重点是我的):
Cloud Firestore 安全规则用于确定谁对存储在 Cloud Firestore 中的集合和文档具有读写访问权限,以及文档的结构方式以及它们包含哪些字段和值。
但是,我在参考资料中找不到任何告诉我如何过滤字段的内容。
Firestore 规则不是过滤器,它们是文档查询的服务器端验证,这意味着您可以访问(或不访问)整个文档,而不是特定字段。
您提到的那篇文档意味着您可以对字段进行数据验证。这是验证写入查询(via request.resource.data)数据的规则的基本示例:
match /users/{userId} {
allow write: if request.resource.data.age is int;
}
Run Code Online (Sandbox Code Playgroud)
这是另一个使用现有字段来验证读取查询(via resource.data)的基本示例:
match /articles/{articleId} {
allow read: if resource.data.isPublished == true;
}
Run Code Online (Sandbox Code Playgroud)
要过滤掉字段,您必须在查询之后在客户端执行此操作。
现在,如果您想保护对某些字段的访问,您必须使用一组不同的规则创建另一个集合(查看子集合),并进行另一个匹配这些规则的查询。
| 归档时间: |
|
| 查看次数: |
1313 次 |
| 最近记录: |