Можете ли вы вернуть идентификатор документа для документа, который был только что добавлен в коллекцию? - PullRequest
0 голосов
/ 30 января 2020

Я хочу вернуться к documentID, чтобы я мог сохранить его и использовать позже. Я пытался сохранить возвращаемое значение createPrescription в типе Dynami c, но я получаю и ошибку.

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 Ответ

1 голос
/ 30 января 2020

Вы не должны использовать await prescriptionCollection.document().setData(), потому что вы не предоставляете никакого идентификатора для документа ().

Если вы хотите, чтобы Firestore сгенерировал для вас Id, вы должны вместо этого сделать await prescriptionCollection.add(), который возвращает ссылка на созданный документ с сгенерированным идентификатором

. Вы можете сделать что-то вроде этого:

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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...