Google Cloud Firestore-如何显示整个文档的一部分

时间:2018-09-15 18:06:56

标签: firebase google-cloud-firestore

有时候,我们不想向最终用户显示整个文档。例如,假设我们有users个集合,每个user都有一个email属性。我们要做的最后一件事是彼此显示用户的电子邮件。

因此,在RTDB中,it was simple的结构不是集合/文档。

在Cloud Firestore上,它不像RTDB那样简单。您无法按照stated in their docs的格式过滤文档:

  

在编写查询以检索文档时,请记住,安全规则不是过滤器,查询是全部或全部。

所以我考虑了两种选择:

1。将user集合拆分为publicprivate子集合。

  • 专家-您可以为publicprivate使用不同的规则。换句话说-您可以阻止其他用户查看其他用户的private文档。
  • 缺点-当您只想获取用户的整个文档时,您必须进行两次读取而不是一次读取,然后合并其响应(假设您没有得到任何结果)错误)。

2。处理用户在后端的过滤(使用Admin SDK)。

  • 专家-这样,我只阅读一个文档,而不必将文档拆分为对象。
  • 缺点-我还没有找到一种方法来订阅所需的云功能(我想听听更改)。

我知道没有单向的方法可以实现某些目标,但是我想知道是否存在一种更常规的方法来实现我要做的事情。

1 个答案:

答案 0 :(得分:1)

您的第一个选项是最常见的,但是如果您的情况不起作用,请不要使用它。

请记住,使用#2选项,会增加客户端和服务器的复杂性。而且您会丢失客户端缓存,这可能会在性能和计费方面为您节省很多。