uploadWithProgress
newUpload a file with real-time progress reporting and pause/resume/cancel control.
Usage
Returns both the underlying Firebase UploadTask for control and a Promise that resolves to the final result. The onProgress callback fires with a number from 0 to 100.
uploadWithProgress
const { task, promise } = db.storage.uploadWithProgress(
'videos/clip.mp4',
file,
{
onProgress: (pct) => console.log(pct + '%'),
downloadUrl: true,
},
);
// Await the result
const result = await promise;
console.log(result.downloadUrl);Pause, resume, cancel
task control
const { task, promise } = db.storage.uploadWithProgress('files/doc.pdf', file);
// Control the upload
task.pause();
task.resume();
task.cancel();
// Or await result
const result = await promise;React hook
For React, use the useUploadTask hook instead, which manages state automatically.
useUploadTask
// For React, use the hook instead
import { useUploadTask } from 'refirebase/react';
const { upload, progress, state, pause, resume, cancel } = useUploadTask();
await upload('avatars/me.jpg', file, { downloadUrl: true });Parameters
| Param | Type | Description |
|---|---|---|
filePath* | string | Storage path. |
file* | Blob | File to upload. |
options.onProgress | (pct: number) => void | Callback fired with progress 0–100. |
options.downloadUrl | boolean | Include a download URL in the result.(default: false) |
options.contentType | string | Override MIME type. |
Return value
Returns
{ task: UploadTask; promise: Promise<StorageUploadResult> }task for pause/resume/cancel control, promise resolves to the upload result.