Firestore(Angularfire)“合并”或在另一个文档中引用一个文档

时间:2019-11-02 16:07:52

标签: google-cloud-firestore angularfire

我有一个用例,在集合A中有一些字段的文档DI。当所有必填字段均已填写并保存文档后,我需要在集合B中创建一个文档DV。

该文档DV需要从文档DI中获取字段,但是它还有另一个字段。

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

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

1 个答案:

答案 0 :(得分:2)

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

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

  • 您可以手动镜像数据-当您写入一个文档时,请同时写入两个文档。不过,您需要使用batched writes(或交易)来确保它们以原子方式降落。
  • 您可以使用cloud function firestore trigger自动镜像数据(有一些延迟,以及写入,存储和函数调用的额外费用-当然,您不必读取多个文档访问数据)。请注意,但是不能保证触发器的顺序。
  • 您可以在第二个文档的第一个字段(例如reference field)中存储对第二个文档的引用。但是,您仍然需要进行第二次阅读才能访问该引用。在this answer中查看更多信息。