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

191
Vistas
Crear una referencia de almacenamiento para subir una imagen a Google Firebase

Actualmente estoy tomando un proyecto anterior que usa una versión desactualizada de Firebase y lo estoy migrando a la versión modular más nueva. Después de seguir la documentación en el sitio web de Firebase, pude hacer la mayor parte excepto por la siguiente característica de mi proyecto: Permitir que un usuario registrado cargue una foto.

Todo funciona además de mi función handleUpload que se ve así:

 const handleUpload = () => { const uploadTask = storage.ref('images/${image.name}').put(image); uploadTask.on( "state_changed", (snapshot) => { //Progress function ... (shows the load bar) const progress = Math.round( (snapshot.bytesTransferred / snapshot.totalBytes) * 100 ); setProgress(progress); }, (error) => { //Error Function... console.log(error); alert(error.message); }, () => { //complete function storage.ref("images").child(image.name).getDownloadURL() .then(url => { db.collection("posts").add({ timestamp: serverTimestamp, caption: caption, imageUrl: url, username: username }); setProgress(0); setCaption(""); setImage(null); }) } ) }

Parece que no puedo hacer que esta parte funcione porque tengo un problema al convertir la antigua sintaxis de Firebase en la versión modular más nueva. He intentado seguir la documentación en línea haciendo algo como const storageRef = ref(storage, 'some-child'); pero el resto todavía no funcionará.

¿Alguna idea sobre cómo solucionar esto o cómo debería verse la función con la sintaxis más nueva?

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

0

La versión Modular del mismo debe quedar de la siguiente manera:

  1. Primero usando ref() para crear una StorageReference.
  2. Luego, crea una UploadTask usando uploadBytesResumable() . Tenga en cuenta que solo uploadBytes() no se puede usar si desea monitorear el progreso de la carga.

Aparte de eso, funciona dentro del oyente .on() igual que V8.

 import { getStorage, ref, uploadBytesResumable, getDownloadURL } from "firebase/storage"; const storage = getStorage(app); const handleUpload = () => { const storageRef = ref(storage, `images/${image.name}`); const uploadTask = uploadBytesResumable(storageRef, image); uploadTask.on( "state_changed", (snapshot) => { //Progress function ... (shows the load bar) const progress = Math.round( (snapshot.bytesTransferred / snapshot.totalBytes) * 100 ); // setProgress(progress); }, (error) => { //Error Function... console.log(error); }, async () => { //complete function // const url = await getDownloadURL(storageRef) } ) }

Luego, para agregar un documento, debe usar la función addDoc() como se muestra a continuación:

 import { getFirestore, collection, addDoc } from "firebase/firestore"; const db = getFirestore(); const docRef = await addDoc(collection(db, "posts"), {...data});

Consulte también esta respuesta para obtener más detalles sobre los cambios en la sintaxis de Firestore:

Firestore: ¿Cuál es el patrón para agregar nuevos datos en Web v9?

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