您可以返回刚刚添加到集合中的文档的文档ID吗?

时间:2020-01-30 08:18:49

标签: firebase flutter dart google-cloud-firestore

我想返回documentID,以便我可以存储它并在以后使用。我试图将createPrescription的返回值存储为动态类型,但是我也遇到了错误。

await DatabaseService().createPrescription(date, ic, illness, medication, important);

Future createPrescription(String newdate, String patientid, String sickness, String meds, String notes) async {
  return await prescriptionCollection.document().setData({
  'date' : newdate,
  'patientID' : patientid,
  'illness' : sickness,
  'medication' : meds,
  'important' : notes
});

}

1 个答案:

答案 0 :(得分:1)

您不应该使用await prescriptionCollection.document().setData(),因为您没有为document()提供任何ID。

如果您希望Firestore为您生成ID,则应改为await prescriptionCollection.add(),该操作返回对具有已生成ID的已创建文档的引用

您可以执行以下操作:

Future createPrescription(String newdate, String patientid, String sickness,
    String meds, String notes) async {
  var _ref = await prescriptionCollection.add({
    'date': newdate,
    'patientID': patientid,
    'illness': sickness,
    'medication': meds,
    'important': notes
  });
  print(_ref.documentId);
}