Saltar al contenido

¿Cómo obtengo documentid de un documento de firestore en flutter?

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 documentIDluego 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);
);

Aquí tienes las comentarios y puntuaciones

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *