Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

648
Vistas
Cómo eliminar una imagen del almacenamiento en la nube de Firebase - REACT

Tengo la siguiente estructura en mi Storage , Post/ID/image.jpg. La publicación y el ID son carpetas que se pueden encontrar fácilmente, pero el ID puede contener varias imágenes. ¿Cómo podría borrarlos todos? Dentro de mi código, tengo una función que debería eliminar Publicaciones dentro de la base de firestore database de firestore y eliminar la referencia de imágenes del firebase storage

El error arrojado es:

TypeError: no se pueden leer las propiedades de undefined (leyendo '_throwIfRoot')

Eliminar función

 const DeletePost = async (e) => { e.preventDefault(); const querySnapshot = await getDocs(collection(db, `${category}Posts`)); querySnapshot.forEach((docx) => { if (post.AdTitle === docx.data().AdTitle) { try { deleteObject(ref(storage, `${category}Posts`, docx.id).child); deleteDoc(doc(db, `${category}Posts`, docx.id)); } catch (error) { console.log("error in delete image, " + error); } // router.reload(); } }); };

EDITAR

La carpeta de publicaciones las imágenes a borrar Contenido de Docx.id

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

No hay ninguna propiedad child en StorageReference . Intente eliminarlo como se muestra a continuación:

 deleteObject(ref(storage, `${category}Posts`, docx.id + ".ext")) // .child); // Make sure you add the file extension at the end

Además, tanto deleteObject() como deleteDoc devuelven una promesa, así que haga el pago: Uso de async/await con un bucle forEach

about 4 years ago · Juan Pablo Isaza Denunciar

0

Siguiendo esta documentación , finalmente se me ocurrió una solución funcional y aquí está el código actualizado.

 try { const listRef = ref(storage, `${category}Posts/${docx.id}/`); listAll(listRef) .then((res) => { res.items.forEach((itemRef) => { setValues((prevState) => [...prevState, itemRef]); }); if (values !== "") { console.log("attempting"); values?.map((value) => deleteObject( ref(storage, `${category}Posts/${docx.id}/${value.name}`) ).then(() => { console.log("storage success"); }) ); deleteDoc(doc(db, `${category}Posts`, docx.id)).then(() => { console.log("doc success"); router.reload(); }); } }) .catch((error) => { console.log("error : " + error); })
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda