0

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) {

             });
Fire-In-D-Hole
  • 270
  • 2
  • 13
harounbest
  • 61
  • 1
  • 13

0 Answers0