const sendPost = () => { const id = uuid(); const storage = getStorage(); const storageRef = ref(storage, `posts/${id}`) const uploadTask = uploadString(storageRef, cameraImage, "data_url").then((snapshot) => { console.log('Uploaded a data_url string') }); } uploadTask.on('state_changed', (snapshot) => { const progress = (snapshot.bytesTransferred / snapshot.totalBytes) * 100; console.log("Upload is" + progress + "% done"); switch (snapshot.state) { case "paused": console.log("upload is runnig") break; } }) (error) => { switch (error.code) { case "storage/unauthorized": break; case "storage/canceled": break; case "storage/unknown": break; } }, () => { getDownloadURL(uploadTask.snapshot.ref).then((downloadURL) => { addDoc(collection(db, "posts"), { imageUrl: URL, username: "swizz6ix", read: false, profilePic: user.profilePic, timestamp: serverTimestamp(), }) navigate("/chats") }) }, );Cuando usa uploadString() , la carga no se puede reanudar. Si desea realizar un seguimiento del progreso de la carga, deberá usar uploadBytesResumable() que toma un Blob | Uint8Array | ArrayBuffer como parámetro y no como una cadena base64 . Entonces, primero tendrá que convertir la cadena base64 en un Blob.
const fileToUpload = parseFileFromBase64(); const task = uploadBytesResumable(storageRef, fileToUpload) task.on(...)