Puede darse el caso de que halles algún problema en tu código o proyecto, recuerda probar siempre en un entorno de testing antes subir el código al trabajo final.
Solución:
Tienes que recuperar ese documento para su id.
Prueba esto
DocumentReference doc_ref=Firestore.instance.collection("board").document(doc_id).collection("Dates").document();
DocumentSnapshot docSnap = await doc_ref.get();
var doc_id2 = docSnap.reference.documentID;
Asegúrese de usar esto en una función marcada como asíncrono ya que el código usa await.
Editar :
Para responder a tu pregunta en los comentarios.
Future get_data(DocumentReference doc_ref) async
DocumentSnapshot docSnap = await doc_ref.get();
var doc_id2 = docSnap.reference.documentID;
return doc_id2;
//To retrieve the string
String documentID = await get_data();
Edición 2:
Simplemente agregue asíncrono a la función de mapa.
snapshot.data.documents.map((document) async
var doc_id=document.documentID;
var now= new DateTime.now();
var formatter=new DateFormat('MM/dd/yyyy');
String formatdate = formatter.format(now);
var date_to_be_added=[formatdate];
DocumentReference doc_ref=Firestore.instance.collection("board").document(doc_id).collection("Dates").document();
var doc_id5= await get_data(doc_ref);
print(doc_id);
Firestore.instance.collection("board").document(doc_id).collection("Dates").document(doc_id5).updateData("Date":FieldValue.arrayUnion(date_to_be_added));
return cardtemplate(document['Name'], document['Nationality'], doc_id);
).toList(),
Hazme saber si esto funciona
document()
cuando llame a este método sin ninguna ruta, creará una identificación aleatoria para usted.
De los documentos:
Si no [path] se proporciona, se utiliza una identificación generada automáticamente. El único key generado tiene como prefijo una marca de tiempo generada por el cliente para que la lista resultante se ordene cronológicamente.
Por lo tanto, si desea obtener la documentID
luego haga lo siguiente:
var doc_ref = await Firestore.instance.collection("board").document(doc_id).collection("Dates").getDocuments();
doc_ref.documents.forEach((result)
print(result.documentID);
);