Firestore (Angularfire) "merge" 或在另一个文档中引用一个文档

Firestore (Angularfire) "merge" or reference one document in another

我有一个用例,其中我在集合 A 中有一个包含一些字段的文档 DI。当所有必要的字段都被填写并保存文档时,我需要在集合 B 中创建一个文档 DV。

该文档 DV 需要从文档 DI 中获取字段,但它还有其他字段。

问题是我需要某种 link,而不仅仅是字段的副本。当我更改两个文档共有的字段时,我需要查看它们中的更改。

firestore 可以做到这一点吗?还是我必须自己检查更改并更新它们?

Firestore 本身不会在两个文档之间自动镜像字段。

但是,您至少有 3 个选择:

  • 您可以手动镜像数据 -- 当您写入一个文档时,同时写入两个文档。不过,您需要使用 batched writes(或事务)来确保它们以原子方式着陆。
  • 您可以使用 cloud function firestore trigger 自动镜像数据(有一些延迟,以及写入、存储和函数调用的额外成本——当然您不必阅读多个文档来访问数据)。但是请注意,不能保证触发器的顺序。
  • 您可以在第一个字段中存储对第二个文档的引用(例如 reference field) to point you at the second document. You would still need to do a second read to access that reference, however. See more in .