Created
November 14, 2018 11:06
-
-
Save mchampaneri/dd692660405ca7b6cdf74af8e9e45f77 to your computer and use it in GitHub Desktop.
firestore code work with dropzone
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function storage_upload(filedata, filehandle, DropzoneHandle, cb) { | |
// Getting Handle of the progressbar element of current file // | |
var progressBar = filehandle.previewElement.children[2] | |
// Firestore storage task | |
var task | |
// uuid for file being uploaded | |
var uuid_string = uuid() | |
// Getting Storeage referance for file | |
var storageRef = firebase.storage().ref(User.client_id + "/" + uuid_string); | |
// Because I am uploading file in base64 data_url // | |
task = storageRef.putString(filedata, 'data_url'); | |
// Making progress bar of current file preview element visible | |
progressBar.opacity = 1 | |
task | |
.on(firebase.storage.TaskEvent.STATE_CHANGED, | |
// Trakcing progress of upload | |
function progress(snapshot) { | |
var progress = (snapshot.bytesTransferred / snapshot.totalBytes) * 100; | |
// Updating progressbar width - to make it look like filling | |
progressBar.children[0].style.width = progress + '%' | |
}, | |
// Firebase storeage upload error handling | |
function(error) { | |
// Hanlde your way | |
// A full list of error codes is available at | |
// https://firebase.google.com/docs/storage/web/handle-errors | |
}, | |
// Finishing process and returing data | |
// Returning file-meta and url | |
// and hiding progress bar | |
function() { | |
// Upload completed successfully, now we can get the meta data of file | |
task.snapshot.ref.getMetadata().then(function(meta) { | |
// Getting download url of file | |
task.snapshot.ref.getDownloadURL().then(function(downloadUrl) { | |
// storing meta data and download url in object and returning | |
// it to callign function ... | |
var response = { | |
object_info: { | |
publicURL: downloadUrl, | |
metainfo: meta | |
}, | |
type_of_object: type | |
} | |
filehandle.fullPath = meta.fullPath | |
return cb(response) | |
}) | |
}) | |
// Hiding progress bar for current file | |
progressBar.style.opacity = 0 | |
} | |
) | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment