使用Firestore从列表创建子集合的有效方法

时间:2020-03-24 20:25:57

标签: flutter google-cloud-firestore

我正在寻找一种使用Flutter将文档列表添加到Firestore中的子元素集合的高效方法。目前,我可以执行以下操作:

documents.forEach((doc) => Firestore.instance
          .collection('mainCollection')
          .document('mainDoc')
          .collection('mySubCollection')
          .add(doc));

我想知道的是,这是添加元素列表的最有效方法,因为此列表可能很大,或者是否存在我似乎找不到的操作。感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

您有两个选择:

  1. 分别添加每个文档。
  2. 使用batch write,该文档限制为500个文档(有关Flutter,请参见WriteBatch)。

任何500多个文档,由于没有其他批量添加操作,因此您将无法一次添加所有文档。批量写入可能比单个插入快一些。我建议进行基准测试,以找出最适合您的情况。

答案 1 :(得分:0)

我不知道Firestore API没有任何let x = (ref 10) f x Debug.Assert(!x = 0) ,但是您可以使用generator function异步添加每个文档,并知道何时完成,因为addAll生成器返回的将是Stream