I am trying to upload an image from my Cordova app to the new Firebase Storage. This is what I have attempted so far.
// Get the image from PhotoLibrary
navigator.camera.getPicture(onSuccess, onFail, {
quality: quality,
sourceType: Camera.PictureSourceType.PHOTOLIBRARY,
destinationType: Camera.DestinationType.FILE_URI,
targetWidth: imageSize,
targetHeight: imageSize
});
function onSuccess(imageData) {
var storageRef = firebase.storage().ref();
window.resolveLocalFileSystemURL(imageData,
function(fileEntry) {
fileEntry.file(function(file) {
var uploadTask = storageRef.child('images/test.jpg').put(file);
uploadTask.on('state_changed', function(snapshot){
console.log(snapshot);
});
}
)
};
This results in the following error
FirebaseError: Firebase Storage: Invalid argument in `put` at index 0: Expected Blob or File.
One other thing I have tried is getting the image as base64 and converting to a Blob, but same result.
Does anyone one know how to get the image in the Javascript File or Blob formats that Firebase Storage requires? Thanks!