i am working on a cooking android app where firebase is the backend, i need to upload multiple images of a recipe in firebase stoarge and then store the downloadurl into firebase database
i used this code from https://stackoverflow.com/a/46521788/2189409 and it worked just fine to upload multiple files in firebase storage, but i couldn't figure out how to get the downloadUrl of these files, any help please. here is my java script code for this part :
firebase.storage().ref().constructor.prototype.putFiles =
function(recipeImages) {
var ref = this;
return Promise.all(Array.from(recipeImages).map(function(file) {
return ref.child(file.name).put(file);
}));
}
firebase.storage().ref(fullDirectory+"/"+imageFile.name);
var category=$("#category").val();
var cook=$("#cook").val();
var name=recipeimages["name"];
var ext= name.substring(name.lastIndexOf("."),name.length);
var receipename = new Date().getTime();
var uploadTime = new Date().getTime();
var storageRef = firebase.storage().ref(receipes+"/"+title+"/"+uploadTime+recipeImages.name );
var imagesUrl;
firebase.storage().ref("receipes"+"/"+category+"/"+title ).putFiles(recipeImages).then(function(metadatas) {
// Get an array of file metadata
imagesUrl=0;
alert("this is meta:", metadatas);
alert("la taille est de :",metadatas.length);
imagesUrl=metadatas.fullPath;
alert(imagesUrl);
var category=$("#category").val();
var cook=$("#cook").val();
var ext= name.substring(name.lastIndexOf("."),name.length);
var uploadTime = new Date().getTime();
firebase.storage().ref(receipes+"/"+title+"/"+uploadTime+recipeImages.name );
var database =
firebase.database().ref("receipes").child(category);
var receipeid = database.push().key;
var receipe=
{
"title":title,
"cook":cook,
"imagesUrl": imagesUrl,
"title":title,
"desc":desc,
"preparationTime":preparationTime,
"ingr":ingr,
"cookTime":cookTime,
"portion":portion ,
"nbrImage": nbrImage,
};
database.child(title+"_"+cook).set(receipe,function(err)
{
if(err){
$("#result").attr("class", "alert alert-danger");
$("#result").html(err.message);
}else{
$("#result").attr("class", "alert alert-success");
$("#result").html("receipe added");
}
resetForm();
});
}).catch(function(error) {
});