Как я могу получить идентификационный номер документа, добавленного в Firestore?

#firebase #flutter #dart #google-cloud-firestore

#firebase #флаттер #dart #google-облако-firestore

Вопрос:

Я пытаюсь добавить документ в Firestore с помощью Flutter / Dart, а затем добавить идентификационный номер, который Firestore дает ему в список. Я видел в Интернете, что старым способом было бы использовать codeRef.documentId, но это, похоже, не работает, а остальной код в тех местах, где я нахожу это, похоже, использует устаревший синтаксис. Я думал о том, чтобы самому создать имя документа, которое давало бы мне нужный идентификационный номер, но это не защитило бы от столкновений. Есть ли способ, которым я должен это делать?

 final codeRef = await FirebaseFirestore.instance.collection('codes').doc().set({
      'name': _codeName,
});
  

Ответ №1:

set() возвращает Future<void> , поэтому имеет смысл, что codeRef.documentID это не сработало бы. void не имеет никаких свойств.

Вы захотите получить идентификатор из DocumentReference, возвращаемый doc() , прежде чем писать документ.

 DocumentReference ref = FirebaseFirestore.instance.collection('codes').doc();
String id = ref.id;
ref.set(...);
  

Ответ №2:

 var _result = await FirebaseFirestore.instance.collection('codes').add({
  'name': _codeName});

String id = _result.id