我正在建模数据并对onSnapshot
(网络)侦听器有疑问。正如在SO和文档中的几篇帖子中指出的那样,在初始调用之后,侦听器仅获取已更改的数据。我很想知道更改的数据是什么。如果正在侦听文档,它只是字段还是整个文档?
在我们在Document上有一个监听器,并且该文档上的字段值发生变化(或者添加或删除了一个字段)的情况下,是否只提取该字段?换句话说,这类似于在RTDB中的节点上放置一个child_changed/added/removed
侦听器吗?
目的是确定我是否应该在RTDB或Firestore中保留经常更改的文档,客户端必须监听这些文档。如果可能的话,我不希望将整个文档重新发送给客户端,因为只有字段更改。
实施例。我们有以下文件:
rando_id:
field1
field2
field3
如果field2
的值发生变化,那么只有field2
是从Firestore DB传输到客户端的数据吗?这同样适用于添加field4
或删除field1
。这些字段会被发送到客户端吗?
答案 0 :(得分:4)
Firestore中的存储单元是文档。没有更精细的数据传输方式。没有API可以告诉文档中究竟发生了什么变化 - 您必须确定自己使用先前的快照(如果可用)。您也无法在安全规则中定位文档字段。对于Firestore中的文档,它可以是全部或全部。