Hoy ando trabajando con algunas cosas de Firebase, específicamente migrando de Realtime database a Firestore y me confundí un poco al eliminar un documento.
Por ello es que en este post te mostraré cómo eliminar un documento (de una colección) a través de su ID al usar Firestore Database en la versión web.
Obteniendo referencia al documento
Antes de eliminar el documento debemos tener una referencia al mismo. Para ello necesitamos el nombre de la colección y su ID (se puede obtener de distintas maneras, supongo, pero esto me funcionó a mí y siento que con el ID no se falla).
Necesitamos entonces invocar a doc
, pasando la base de datos y la ruta del mismo. En mi caso quiero eliminar a un usuario de mi colección usuarios así que:
const referencia = doc(bd, "usuarios", usuario.id);
No te confundas. La variable usuario
es una variable que tiene los datos del usuario registrado en mi base de datos, y entre ellas está el id
.
Ese id se lo puse yo al obtenerlo desde la snapshot, fíjate en la línea 4 que estoy tomando el id de la snapshot:
const instantanea = await getDocs(this.coleccionUsuarios);
instantanea.forEach((datoInstantanea) => {
this.usuarios.push({
id: datoInstantanea.id,
nombre: datoInstantanea.data().nombre,
});
});
Y en este caso "usuarios"
es el nombre de mi colección. Por cierto, bd
es la referencia a la base de datos.
Eliminar documento por ID en Firestore
Ahora que ya tenemos la referencia al documento invocamos a deleteDoc
pasándole el documento:
await deleteDoc(
doc(bd, "usuarios", usuario.id)
);
Y así es como se va a eliminar de nuestra colección en Firebase usando Firestore Database, a filtrando por el id del documento.