Firestore:如何添加文档和子集合文档

时间:2019-07-09 15:10:06

标签: firebase flutter google-cloud-firestore crud

在Flutter Firestore中,我这样做是为了添加文档:

Firestore.instance
    .collection('groups').add({'name': 'Group Name 1'});

但是如何添加文档以及在子集合中也添加文档,我需要这样的东西:

Firestore.instance
    .collection('groups').add({'name': 'Group Name 1'})
    .collection('members').add({'name': 'newMemberName', 'isAdmin': true});

(在这种情况下,我希望创建组的用户成为第一位成员,同时也要成为管理员)

1 个答案:

答案 0 :(得分:1)

第一个add返回一个“ future”,它将解析为新文档的文档引用。您可以通过“等待”使用该值...

var docRef = await Firestore.instance.collection('groups').add({'name': 'Group Name 1'});
docRef.collection('members').add({'name': 'newMemberName', 'isAdmin': true});

编辑

要处理单个http请求,您可以尝试写批处理。

Paul编辑:

      // Add new group to database
      var batch = Firestore.instance.batch();

      // Create the group
      var newGroup = Firestore.instance.collection('groups').document();
      batch.setData(newGroup, {'name': value});

      // Create the new members subcollection
      var newMember = newGroup.collection('members').document();
      batch.setData(newMember, {
        'users_documentId': currentUser.documentId,
        'users_displayName': currentUser.displayName,
        'isAdmin': true
      });

      // Commit the batch edits
      batch.commit().catchError((err) {
        print(err);
      });