Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase 仅检索已更改的文档字段_Firebase_Google Cloud Firestore - Fatal编程技术网

Firebase 仅检索已更改的文档字段

Firebase 仅检索已更改的文档字段,firebase,google-cloud-firestore,Firebase,Google Cloud Firestore,我发现听文档更改总是会反复下载完整的文档 在下面的场景中,我有一个问题:文档的大小接近1个MiB,这是一个错误。现在,有一个数字字段是唯一更新的字段,它只有几个字节。但是,即使只有几个字节就足够了,在帖子上收听此更改(如likes on a post)将始终下载完整的1 MiB数据 我知道我可以将占据1 MiB大部分的数据移动到一个子集合,然后移动到一个文档中,但这不仅是不规则的,而且看起来非常违反直觉,而且还显著增加了我的Firestore账单,因为最初检索数据需要两次而不是一次文档读取 是否

我发现听文档更改总是会反复下载完整的文档

在下面的场景中,我有一个问题:文档的大小接近1个MiB,这是一个错误。现在,有一个数字字段是唯一更新的字段,它只有几个字节。但是,即使只有几个字节就足够了,在帖子上收听此更改(如likes on a post)将始终下载完整的1 MiB数据

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


是否有其他方法解决此问题?

Firestore始终返回完整的文档。无法让它返回文档中字段的子集,既不能通过显式请求类似于SELECT FIELD1、FIELD2语句的字段,也不能像只需要修改字段那样隐式请求

如果您想限制带宽使用率,以便频繁更改负载较大的文档,那么将更静态的数据部分放在单独的文档中是有效的

另见:


您似乎已经知道Firestore总是阅读完整的文档。您还想到了一种似乎有效的解决方法,它可能会在带宽使用和额外读取成本方面为您节省更多。有了这些知识,我不确定你的问题到底是什么。请参见此处的Franks答案。这可能会对你有所帮助,因为你特别希望更新文档中的单个字段编号,而不是反复下载完整的文档。@FrankvanPuffelen我注意到了这种行为,但我不确定是否有办法阻止它。如果真的是这样,那可能是你的一个潜在答案。