Reputation: 805
I have this code:
/////////////////////////////////////////////CROP + UPLOAD FOR FIREBASE STORAGE//////////////////////////
// Return a promise to catch errors while loading image
getMedia(): Promise<any> {
// Get Image from ionic-native's built in camera plugin
return Camera.getPicture(this.options)
.then((fileUri) => {
// Crop Image, on android this returns something like, '/storage/emulated/0/Android/...'
// Only giving an android example as ionic-native camera has built in cropping ability
if (this.platform.is('ios')) {
return fileUri
} else if (this.platform.is('android')) {
// Modify fileUri format, may not always be necessary
fileUri = 'file://' + fileUri;
/* Using cordova-plugin-crop starts here */
return Crop.crop(fileUri, { quality: 100 });
}
}).then((path) => {
// path looks like 'file:///storage/emulated/0/Android/data/com.foo.bar/cache/1477008080626-cropped.jpg?1477008106566'
// console.log('Cropped Image Path!: ' + path);
path; // return the path of file
window.resolveLocalFileSystemURL(path, FE=>{
FE.file(file=>{
const FR=new FileReader()
FR.onloadend = ((res: any)=>{
let AF=res.target.result
let blob=new Blob([new Uint8Array(AF)], {type: 'image/jpg'});
this.upload(blob)
});
FR.readAsArrayBuffer(file);
})
})
})
}
upload(blob:Blob){
const currentUserId = this.fire.auth.currentUser.uid; // get user UID in firebase
this.Fbref.child(`Profile/${currentUserId}/img`).put(blob); //path in firebase storage
////GET Image URL
this.Fbref.child(`Profile/${currentUserId}/img` ).getDownloadURL().then(function(url){
console.log("the URL Image is: " + url);
url;
let photoURL = this.url
});}
It is working perfectly, does the image cut and then upload .... but I am not able to save the URL of the image inside the user profile DOC in the Firestore database.
Need to put as photoURL: (URL Image)
Does anyone know how to do it?
Upvotes: 1
Views: 2342
Reputation: 805
[SOLVED] Adding the code below worked perfectly
savephotoURL(){
const currentUserId = this.fire.auth.currentUser.uid;
this.Fbref.child(`Profile/${currentUserId}/img` ).getDownloadURL().then(function(url){
console.log("the URL Image is: " + url);
let imageURL = url
return imageURL
}).then((imageURL) => {
this.database.doc(`ProfileUser/${currentUserId}/`).update({photoURL:imageURL}) })// save url in Firestore database realtime
}
Upvotes: 1