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

442
Vistas
Cómo cargar imágenes en el almacenamiento de Firebase y obtener las URL de descarga de imágenes al usar Dropzone en React.js

Tengo un <Dropzone/> en mi sitio web de reacción que permite a mis usuarios cargar varias imágenes simplemente haciendo clic o arrastrando y soltando.

Cuando subo las imágenes, se guardan en mi almacenamiento de Firebase, pero las URL para cada imagen individual no se configuran y aparece un error de Firebase que dice:

 "Uncaught (in promise) FirebaseError: Firebase Storage: Object 'propertyImages/Picture1.png+4b80d-6dd0-4b40-cadc-8e7845677bbd' does not exist. (storage/object-not-found) { "error": { "code": 404, "message": "Not Found." } }"

No sé por qué no está configurando la URL para cada imagen, creo que es porque está sobrescribiendo las URL de descarga anteriores. ¿Cómo puedo hacer que Dropzone funcione correctamente?

¿Qué estoy haciendo mal?

Aquí está mi código:

 import Dropzone, {useDropzone} from "react-dropzone" const [urls,setUrls] = useState([]); const { getRootProps, getInputProps, isDragActive } = useDropzone({ onDropAccepted: onFilesDrop, maxFiles: 5 }); function onFilesDrop(files) { files.map((item, index) => { let uploadTask = storage.ref(`propertyImages/${item.name}+${uuid()}`).put(item); uploadTask.snapshot.ref.getDownloadURL().then(function (downloadURL) { setUrls(prevState => { return [...prevState, downloadURL] }) }) }) } return ( <CardTitle className="mb-3 h4">Property Images (MAX IMAGES 5)</CardTitle> <div className="dropzone" > <Dropzone onDrop={acceptedFiles => onFilesDrop(acceptedFiles) } > {({ getRootProps, getInputProps }) => ( <div> <div className="dz-message needsclick" {...getRootProps()} > <input {...getInputProps()} /> <div className="dz-message needsclick"> <div className="mb-3"> <i className="display-4 text-muted bx bxs-cloud-upload" /> </div> <h4>Drop files here or click to upload.</h4> </div> </div> </div> )} </Dropzone> )
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

actualizar la función onFilesDrop

 function onFilesDrop(files) { files.map((item, index) => { let uploadTask = storage.ref(`propertyImages/${item.name}+${uuid()}`).put(item); console.log(uploadTask); uploadTask.on( "state_changed", snapshot => { }, error => { console.log(error); }, async () => { await storage .ref("images") .child(item.name) .getDownloadURL() .then(urls => { console.log(urls) //log url if you want setUrls((P) => [...P, urls]); }) } ) })
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