After calling .put()
on a Storage Reference with a Uint8Array, it triggers one ‘state_changed’ event (0% done, status firebase.storage.TaskState.RUNNING) then after a minute or so times out with the following error:
upload(blob: Blob, name: string, type: string, resolve: any, reject: any) {
let uploadTask = this.myPhotosRef.child('image').put(blob);
uploadTask.on('state_changed' , (snapshot) => {
// Get task progress, including the number of bytes uploaded and the total number of bytes to be uploaded
var progress = (snapshot.bytesTransferred / snapshot.totalBytes) * 100;
alert('Upload is ' + progress + '% done');
switch (snapshot.state) {
case firebase.storage.TaskState.PAUSED: // or 'paused'
alert('Upload is paused');
break;
case firebase.storage.TaskState.RUNNING: // or 'running'
alert('Upload is running');
break;
}
}, (error: any) => {
alert('An Error has occured');
switch (error.code) {
case 'storage/unauthorized':
// User doesn't have permission to access the object
alert('Unauthorized Access: ' + JSON.stringify(error));
reject(error.code);
break;
case 'storage/canceled':
// User canceled the upload
alert('Canceled');
reject(error.code);
break;
case 'storage/unknown':
// Unknown error occurred, inspect error.serverResponse
alert('Storage Unkown: ' + JSON.stringify(error));
reject(error.code);
break;
default:
alert('Default: ' + JSON.stringify(error));
reject(error.code);
break;
}
}, () => {
alert('Finished Uploading');
resolve( {url: uploadTask.snapshot.downloadURL, name: name, mediaType: type} );
});
}
> IT WORK FOR SMALL VIDEOS BUT FOR MORE THAN 15-20 MB IT GET FREEz AND GIVE THIS ERROR
FirebaseStorageError {
"code_": "storage/retry-limit-exceeded",
"message_": "Firebase Storage: Max retry time for operation exceeded, please try again.",
"name_": "FirebaseError",
"serverResponse_": null,
}