Firestore更新子集合文档

时间:2020-05-10 11:20:42

标签: firebase flutter dart google-cloud-firestore

我想通过使用Flutter发送 group-query 来更新我得到的子集合文档。根据我目前对 group-query 的理解,我并不真正知道子集合的父项。

为此,我需要父文档的文档ID。更新查询将如下所示:

collection(collectionName)
.document(parentDocumentId)
 .collection(subCollectionName)
  .document(subCollectionDocumentId)
   .updateData(someMapWithData);

是否有必要将parentDocumentId保存在子集合文档中才能进行这种更新,或者还有另一种方式?

1 个答案:

答案 0 :(得分:1)

如果要更新子集合中的文档,则需要顶部文档ID和子集合中的文档ID。

是否有必要将parentDocumentId保存在子集合文档中才能进行这种更新,或者还有另一种方式?

否,这不是必需的,但是如果您有parentDocumentId,但没有subDocumentId,则需要查询以检索它:

    Firestore.instance
        .collection("path")
        .document("docPath")
        .collection("subCollection")
        .where("name", isEqualTo: "john")
        .getDocuments()
        .then((res) {
      res.documents.forEach((result) {
        Firestore.instance
            .collection("path")
            .document("docPath")
            .collection("subCollection")
            .document(result.documentID)
            .updateData({"name": "martin"});
      });
    });