Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.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
Google cloud firestore Firestore(Angularfire)“;“合并”;或者在另一个文档中引用一个文档_Google Cloud Firestore_Angularfire - Fatal编程技术网

Google cloud firestore Firestore(Angularfire)“;“合并”;或者在另一个文档中引用一个文档

Google cloud firestore Firestore(Angularfire)“;“合并”;或者在另一个文档中引用一个文档,google-cloud-firestore,angularfire,Google Cloud Firestore,Angularfire,我有一个用例,在集合a中有一个文档DI和一些字段。当填写完所有必要的字段并保存文档后,我需要在集合B中创建一个文档DV 该文档DV需要从文档DI获取字段,但它还有另一个字段 问题是我需要某种链接,而不仅仅是字段的副本。当我更改这两个文档的公共字段时,我需要查看这两个文档中的更改 firestore能够做到这一点吗?或者我必须自己检查更改并更新它们吗?Firestore本身不会自动在两个文档之间镜像字段 但是,您至少有3个选项: 您可以手动镜像数据——当您写入一个文档时,同时写入两个文档。不过,

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

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

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


firestore能够做到这一点吗?或者我必须自己检查更改并更新它们吗?

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

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

  • 您可以手动镜像数据——当您写入一个文档时,同时写入两个文档。不过,您需要使用(或事务)来确保它们以原子方式着陆
  • 您可以使用自动镜像数据(有一定的延迟,以及写入、存储和函数调用的额外成本——当然,您不必读取多个文档来访问数据)。但是,请注意,触发器的顺序不能保证
  • 您可以将对第二个文档的引用存储在第一个(例如a)字段中,以指向第二个文档。但是,您仍然需要进行第二次读取才能访问该引用。更多信息请参阅

这个答案几乎涵盖了这一点。您还可以使每个集合中的文档ID相同,以使您的生活更轻松。不过,我不确定你是否能用随机数做到这一点。