【问题标题】:Only retrieve changed document field仅检索更改的文档字段
【发布时间】:2019-07-31 13:28:06
【问题描述】:

我发现收听文档更改会总是一遍又一遍地下载完整的文档

在以下情况下我遇到了问题:文档的大小接近1 MiB(即the limit for document size)。现在,有一个number 字段,它是唯一的字段更新,它只有几个字节。但是,收听此更改(例如帖子上的赞)将始终下载完整的 1 MiB 数据,即使几个字节就足够了。

我知道我可以将占据大部分 1 MiB 的数据移动到单个文档的子集合中,但这不仅是单一的而且看起来非常违反直觉,而且显着增加了我的 Firestore 账单,因为我需要 两个 而不是 一个 文档读取来最初检索数据。

有没有其他方法可以解决这个问题?

【问题讨论】:

  • 您似乎已经知道 Firestore 总是会读取完整的文档。您还想到了一种似乎有效的解决方法,并且可能会为您节省更多带宽使用和额外读取的成本。鉴于这些知识,我不确定您的问题到底是什么。
  • 在此处查看 Franks 答案,它可能会对您有所帮助,因为您特别希望更新文档中的单个字段 Number,而不是一遍又一遍地下载完整的文档。Link
  • @FrankvanPuffelen 我注意到了这种行为,但我不确定是否有办法阻止它。如果确实如此,那可能是您的潜在答案。

标签: firebase google-cloud-firestore


【解决方案1】:

Firestore 始终返回完整的文档。没有办法让它返回文档中字段的子集,既不是通过显式询问这些字段(类似于SELECT FIELD1, FIELD2 语句),也不是隐式询问(就像你只想要修改的字段一样)。

如果您想限制频繁更改且负载较大的文档的带宽使用,则将数据的更静态部分放在单独的文档中的解决方法是有效的。

另见:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-07
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    • 2014-05-29
    • 1970-01-01
    相关资源
    最近更新 更多