从未来检索 documentId

Retrieve documentId from future

我找不到问题的答案所以我会在这里问。

我创建了一个包含一条数据的文档。创建该文档后,我需要检索该文档的 ID,以便我可以使用该字符串添加到接下来将创建的另一个文档。代码在下面,我将 Future 函数称为“saveNewAgency”以及 Future 函数的代码。

if (globals.newAgency == true) {
      firestoreService.saveNewAgency(newAgency);
      agentProvider.saveAgent();
      globals.newAgency = false;
    } else {
      firestoreService.saveAgency(newAgency);
    }

 Future<String> saveNewAgency(Agency agency) async {
    DocumentReference docRef = await _db
        .collection('agency')
        .add(agency.toMap())
        .then((value) => value.id);

    //globals.agencyId = docRef.id;
  }

如您所见,我尝试设置一个全局变量以获取 documentId,但该代码从未执行,所以我将其注释掉。

这是一件小事,但它只是我学习 flutter 和 firebase 的又一步。

谢谢

试试这个。

Future<String> saveNewAgency(Agency agency) async {
    await _db
        .collection('agency')
        .add(agency.toMap())
        .then((value) => {
           globals.agencyId = value.id
      });
  }
String Id = _db  .collection('agency').doc().id;
Future<String> saveNewAgency(Agency agency) async {
    await _db
        .collection('agency')
       .doc(id)
       .set(agency.toMap())
      .then((value) => {
           print(id);
      });
  }