Vai*_*shi 1 firebase firebase-security google-cloud-firestore
我在 firestore 中有一个用户集合,它存储了一些我不想向用户透露的用户信息(例如会话 ID)。所以我的问题是,是否可以只允许 firebase 管理员获取文档的某些字段,而如果任何用户通过身份验证,则可以获取其余字段?Firebase 安全规则是否有可能?
正如您所指出的,Firestore 安全规则“只允许达到文档级别的安全性”。
同样,使用客户端 SDK,当您获取一个文档时,您将获得该文档的整个字段集。
(在撰写本文时)只有 Firestore REST API 允许应用DocumentMask“将文档上的获取或更新操作限制到其字段的子集”。请注意,这不是对字段级别的读写访问权限的限制(即它不实现/模仿安全规则),它只是一种减少传递给/接收的有效负载大小的方法API。
因此,话虽如此,一种解决方案是复制您的数据并拥有两个不同的集合:
allow read: if request.auth.uid != null;)。要“链接”一个文档的两个版本,您需要在每个集合中使用相同的文档 ID。
这种方法的一个副作用是您需要保持文档同步。如果修改了集合之一中的文档,则可以使用触发的云函数来完成此同步。由于一个文档的两个版本共享相同的 doc id,所以它不是很复杂。
| 归档时间: |
|
| 查看次数: |
1311 次 |
| 最近记录: |