首页 > 解决方案 > 如何使用 Flutter 在 Firestore 中复制包含子集合的文档?

问题描述

我在 Firebase Firestore 中有一个包含文档的集合,可以说:Products. 每个产品都可以有多个子集合,例如Pictures, Specifications,Manufactures等。

现在我想复制一个包含所有子集合及其文档的产品。我可以很容易地复制产品,但是获得子集合和文档似乎还不太可能。

这可以从 Flutter 中做到吗?

标签: flutterdartgoogle-cloud-firestore

解决方案


我建议将这种类型的数据存储在产品文档中,因为它是关于产品的数据。但是,如果由于某种原因您需要将该数据存储在子集合中,您确实有两个选择......

  1. 如果您不知道子集合是什么,您可以编写一个递归函数来获取第一个文档,从中读取子集合,获取所有这些文档,然后重复直到没有更多的子集合。

  2. 如果你知道你得到的子集合是什么,只需发送多个请求。

final db = FirebaseFirestore.instance;
final results = await Future.wait([
  db.collection('products').doc(docID).get(),
  db.collection('products/$docID/pictures').get()
])

推荐阅读