el problema: ese usuario subirá la imagen y el
el código devolverá la URL de descarga
establecer el estado en la url
almacene la url en el almacenamiento local, el código que hace lo siguiente es: importar {
getDownloadURL, ref, uploadBytesResumable, UploadTask, } from 'firebase/storage'; import { IState } from '../store/state'; import { storage } from '../../firebase'; const getDownload = async (uploadTask: UploadTask, state: IState) => { const downloadUrl = getDownloadURL(uploadTask.snapshot.ref).then( (downloadURL) => { console.log('File available at', downloadURL); localStorage.setItem('logoUrl', downloadURL); return downloadURL; } ); return downloadUrl; }; export const uploadLogo = async (file: any, state: IState) => { // if (!file) return; const sotrageRef = ref(storage, `files/${file.name}`); const uploadTask = uploadBytesResumable(sotrageRef, file); return uploadTask.on( 'state_changed', (snapshot: { bytesTransferred: number; totalBytes: number }) => { const prog = Math.round( (snapshot.bytesTransferred / snapshot.totalBytes) * 100 ); }, (error: any) => console.log(error), async () => { state.logoUrl = await getDownload(uploadTask, state); } ); };el usuario presiona el botón para cargar su imagen, luego el almacenamiento local se actualiza con la nueva URL pero el estado no
pd: estoy usando Overmind para administrar mi estado