【问题标题】:Firestore: restricting child/field access with security rulesFirestore:使用安全规则限制子/字段访问
【发布时间】:2017-10-06 16:05:01
【问题描述】:

如果我理解正确 [1],在 Firebase 中没有办法限制用户对他们拥有的数据的访问,也没有办法隐藏敏感列。这在新发布的 Firestore 中会更好吗?有解决办法吗?

我能想到的另一种选择是通过云函数路由此类请求,以便根据需要进行过滤,而不是允许直接访问。可以吗?

[1]Restricting child/field access with security rules

【问题讨论】:

标签: firebase google-cloud-firestore


【解决方案1】:

Firestore(和 Firebase)并没有真正区分谁“拥有”数据。您可以制定规则来实施所有权政策,但没有任何内在因素迫使这种情况发生。

在 Firestore 中,规则适用于整个文档,因此您无法隐藏敏感列。一个典型的解决方案是在一个文档中包含公共字段,在第二个文档中包含私有字段。然后你可以write rules to enforce different access to the separate documents

像这样编写多个文档时,您有几个选择。一种方法是将整个记录写入私有部分,并有一个函数过滤器并写入公共部分。这样做的缺点是,在您编写私有部分和看到更新的公共部分之间存在延迟。

另一种方法是使用写入批处理以原子方式写入两个文档。与要求您在线的完整事务不同,写入批处理可以在离线时使用,并且适用于您需要对两个或更多文档进行原子更改但您不希望任何其他写入竞争的情况。更新自己的个人资料的用户将是一个很好的例子,说明批量写入效果很好。

【讨论】:

  • @Torewin 的链接通过回答有关单个文档级别访问的子问题来补充这一点。谢谢!
猜你喜欢
  • 1970-01-01
  • 2012-12-27
相关资源
最近更新 更多