我想返回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
});
}
答案 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);
}