【问题标题】:Google Cloud Firestore - How to display a part of an entire documentGoogle Cloud Firestore - 如何显示整个文档的一部分
【发布时间】:2019-02-20 04:24:13
【问题描述】:

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

所以在 RTDB 中,it was simple,因为它的结构不是集合/文档。

在 Cloud Firestore 上,它并不像 RTDB 那样简单。您无法根据需要过滤文档,如stated in their docs

在编写查询以检索文档时,请记住,安全规则不是过滤器——查询要么全有,要么全无。

所以我想到了 2 个替代方案:

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

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

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

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

我知道实现某些目标没有单向的方法,但我想知道是否有更传统的方法来实现我正在尝试做的事情。

【问题讨论】:

    标签: firebase google-cloud-firestore


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2018-06-30
      • 2019-06-21
      • 2018-08-24
      • 2011-12-04
      • 1970-01-01
      • 1970-01-01
      • 2020-07-02
      • 1970-01-01
      • 2018-06-18
      相关资源
      最近更新 更多