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

Firebase Firestore:如何添加文档和子集合文档,firebase,flutter,google-cloud-firestore,crud,Firebase,Flutter,Google Cloud Firestore,Crud,在Flatter Firestore中,我这样做是为了添加一个文档: Firestore.instance .collection('groups').add({'name': 'Group Name 1'}); 但是如何添加文档以及如何在子集合中添加文档,我需要这样的内容: Firestore.instance .collection('groups').add({'name': 'Group Name 1'}) .collection('members').add(

在Flatter 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});

(在本例中,我希望创建组的用户是第一个成员,同时也是管理员)

第一个
add
返回一个“future”,解析为新文档的文档引用。你可以通过“等待”——等待来使用这个值

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

要在单个http请求中处理,可以尝试写批处理

保罗编辑:

      // 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);
      });

谢谢,这就解决了问题。但是用一个“http调用”就没有办法做到这一点了吗@PaulKruger,我从来没有用dart做过,但是(也许??)另一种方法是写批处理。这里有一个JS参考…谢谢你!这至少会让我走上正确的方向:)很乐意帮忙。编辑的目的是建议——不要太自信——写一个批处理方法,谢谢!我的下一个堆栈问题是“如何批量编辑”,但多亏了你的代码,我才明白了这一点!我在你的答案中添加了正确的代码。删除你的东西,用我的来代替…非常感谢!!!