Solución:
Si está utilizando el método add () de CollectionReference, significa que:
Agrega un nuevo documento a esta colección con el POJO especificado como contenido, asignándole un ID de documento automáticamente.
Si desea obtener la identificación del documento que se genera y usarla en su referencia, use el método set () de DocumentReference:
Sobrescribe el documento al que hace referencia este documento.
Como en las siguientes líneas de código:
String id = db.collection("collection_name").document().getId();
db.collection("collection_name").document(id).set(object);
Como ya conoce la identificación del documento, simplemente llame set()
en lugar de add()
. Creará el documento si aún no existe.
Esta respuesta puede llegar un poco tarde, pero puede ver este código aquí que generará un nuevo nombre de documento:
// Add a new document with a generated id.
db.collection("cities").add({
name: "Tokyo",
country: "Japan"
})
.then(function(docRef) {
console.log("Document written with ID: ", docRef.id);
})
.catch(function(error) {
console.error("Error adding document: ", error);
});
es más conveniente permitir que Cloud Firestore genere automáticamente un ID. Puedes hacer esto llamando add()
Obtenga más información al respecto en Agregar datos a Cloud Firestore.