Firestore onSnapshot - 如何判断哪些字段已更改?

时间:2018-05-31 16:44:57

标签: firebase google-cloud-firestore

我正在建模数据并对onSnapshot(网络)侦听器有疑问。正如在SO和文档中的几篇帖子中指出的那样,在初始调用之后,侦听器仅获取已更改的数据。我很想知道更改的数据是什么。如果正在侦听文档,它只是字段还是整个文档?

在我们在Document上有一个监听器,并且该文档上的字段值发生变化(或者添加或删除了一个字段)的情况下,是否只提取该字段?换句话说,这类似于在RTDB中的节点上放置一个child_changed/added/removed侦听器吗?

目的是确定我是否应该在RTDB或Firestore中保留经常更改的文档,客户端必须监听这些文档。如果可能的话,我不希望将整个文档重新发送给客户端,因为只有字段更改。

实施例。我们有以下文件:

rando_id:
  field1
  field2
  field3

如果field2的值发生变化,那么只有field2是从Firestore DB传输到客户端的数据吗?这同样适用于添加field4或删除field1。这些字段会被发送到客户端吗?

1 个答案:

答案 0 :(得分:4)

Firestore中的存储单元是文档。没有更精细的数据传输方式。没有API可以告诉文档中究竟发生了什么变化 - 您必须确定自己使用先前​​的快照(如果可用)。您也无法在安全规则中定位文档字段。对于Firestore中的文档,它可以是全部或全部。