# Firestore CRUD

Leer datos Firestore (opens new window)

# GET / Obtener

// GET
async obtenerDatos () { 
  const data = await getDocs(collection(db, "productos"));
    data.forEach((doc) => {
    let producto = doc.data()
    producto.id = doc.id
    this.productos.push(producto)
    console.log(producto)
  });
},

# ADD / Agregar / Añadir

Agregar Firestore (opens new window)

// ADD / AGREGAR / AÑADIR
async agregarDato( producto ){
  const docRef = await addDoc(collection(db, "productos"), {
    nombre: this.producto.nombre,
    descripcion: this.producto.descripcion,
    precio: this.producto.precio,
    valoracion: this.producto.valoracion,
    familia: this.producto.familia,
    unidades: this.producto.unidades,
    enlace: this.producto.enlace,
  })
    .then(() => {
      console.log("Documento añadido");
    })
    .catch(function(error) {
      console.error("Error al añadir el documento: ", error);
    });
},

# DELETE / Eliminar / Borrar

Elimina datos Firestore (opens new window)

// 
async eliminarDato (id){
  await deleteDoc(doc(db, "productos", id ));
},

# GET BY ID / Obtener por ID

Obtener datos por ID Firestore (opens new window)

// GET BY ID / OBTENER POR ID
async obtenerDatoID (id){
  const docRef = doc(db, "productos", id);
  const docSnap = await getDoc(docRef);
      if (docSnap.exists()) {
        this.producto = docSnap.data()
        this.producto.id = docSnap.id
        } 
        else {
        console.log("¡No existe el documento!");
        }
},

# UPDATE / Actualizar

Actualiza un dato Firestore (opens new window)

// UPDATE / ACTUALIZAR
async actualizarDato (producto) {
  const elemento = doc(db, "productos", this.producto.id );
  await updateDoc(elemento, {
    nombre: producto.nombre,
    descripcion: producto.descripcion,
    familia: producto.familia,
    precio: producto.precio,
    valoracion: producto.valoracion,
    unidades: producto.unidades,
    enlace: producto.enlace,
    urlFoto: producto.urlFoto
    })
    .then(() => {
    //router.push('Home');
    })
},