firebase - Firestore 安全规则仅允许特定字段

标签 firebase google-cloud-firestore firebase-security

我正在尝试实现安全规则来限制用户只能访问文档中的特定字段。我的数据结构是这样的:

document {
  name: John,
  dob: 1994,
  email: <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="b0dadfd8def0d8dfc4ddd1d9dc9ed3dfdd" rel="noreferrer noopener nofollow">[email protected]</a>
}

我想限制name字段至 read, write by owner ; dob字段至 read by owner, create by owner ; emailread by owner, update by owner

我阅读了文档,似乎我只能使用安全规则来控制特定文档的访问。它没有提到任何允许访问特定字段的内容。我应该做什么才能允许访问文档中的特定字段?

最佳答案

安全规则不能用于限制对文档中各个字段的访问。如果用户对文档具有直接读取权限,则他们始终可以读取文档中的每个字段。

您唯一的选择是:

  1. 将受限字段拆分到另一个集合中的文档中,并以不同方式保护该集合。
  2. 完全拒绝对集合的直接访问,并强制用户通过 API 端点,该端点根据传递到端点的用户身份删除受限字段。

关于firebase - Firestore 安全规则仅允许特定字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62904085/

相关文章:

javascript - 数据库没有更新

ios - Firestore 安全规则在模拟器中有效,但在应用程序中失败

android - Firebase/Android - 经常失去数据库连接

javascript - 如何将 firebase 的数据与 angularJS 范围绑定(bind)

node.js - Firebase 错误 : Function failed on loading user code (node. js)

javascript - 从 firebase 获取以下数据结构的结构如何?

android - 从 Android 应用程序写入谷歌 FireBase 不工作

Firebase 组织文档成员资格

java - 调用另一个方法后字符串值null android java

firebase - Cloud Firestore 中的数据匹配功能与 Cloud Functions 函数