Function 从未来检索documentId

Function 从未来检索documentId,function,flutter,future,Function,Flutter,Future,我还没有找到我的问题的答案,所以我会在这里问 我创建了一个包含一段数据的文档。创建该文档后,我需要检索该文档的id,以便使用该字符串添加到下一个要创建的文档中。下面是我称未来函数为“saveNewAgency”的代码,以及未来函数的代码 if (globals.newAgency == true) { firestoreService.saveNewAgency(newAgency); agentProvider.saveAgent(); globals.ne

我还没有找到我的问题的答案,所以我会在这里问

我创建了一个包含一段数据的文档。创建该文档后,我需要检索该文档的id,以便使用该字符串添加到下一个要创建的文档中。下面是我称未来函数为“saveNewAgency”的代码,以及未来函数的代码

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;
  }
if(globals.newAgency==true){
firestoreService.saveNewAgency(newAgency);
agentProvider.saveAgent();
globals.newAgency=false;
}否则{
firestoreService.saveAgency(新机构);
}
Future saveNewAgency(代理机构)异步{
DocumentReference docRef=等待_db
.托收(“代理”)
.add(agency.toMap())
.然后((value)=>value.id);
//globals.agencyId=docRef.id;
}
正如您所看到的,我试图设置一个全局变量以获取documentId,但该代码从未执行过,所以我将其注释掉

这是一件小事,但这只是我在学习颤振和火基之旅中迈出的又一步

谢谢,试试这个

Future<String> saveNewAgency(Agency agency) async {
    await _db
        .collection('agency')
        .add(agency.toMap())
        .then((value) => {
           globals.agencyId = value.id
      });
  }
Future saveNewAgency(Agency Agency)异步{
等待
.托收(“代理”)
.add(agency.toMap())
。然后((值)=>{
globals.agencyId=value.id
});
}
试试这个

Future<String> saveNewAgency(Agency agency) async {
    await _db
        .collection('agency')
        .add(agency.toMap())
        .then((value) => {
           globals.agencyId = value.id
      });
  }
Future saveNewAgency(Agency Agency)异步{
等待
.托收(“代理”)
.add(agency.toMap())
。然后((值)=>{
globals.agencyId=value.id
});
}
字符串Id=\u db.collection('agency').doc().Id;
Future saveNewAgency(代理机构)异步{
等待
.托收(“代理”)
.doc(id)
.set(代理.toMap())
。然后((值)=>{
打印(id);
});
}
字符串Id=\u db.collection('agency').doc().Id;
Future saveNewAgency(代理机构)异步{
等待
.托收(“代理”)
.doc(id)
.set(代理.toMap())
。然后((值)=>{
打印(id);
});
}

感谢您的回复。这不管用。value.id为空。感谢您的回复。这不管用。value.id为null。谢谢@Subair,但此代码看起来像是保存到现有文档中。我需要的是创建一个机构文档并获取它的documentId,这样我就可以在接下来的步骤中使用它。我能够使它工作。感谢两位响应者。感谢@Subair,但这段代码看起来好像正在保存到现有文档中。我需要的是创建一个机构文档并获取它的documentId,这样我就可以在接下来的步骤中使用它。我能够使它工作。谢谢两位回复者。