Почему загрузка нескольких изображений в Firebase приводит к загрузке одного и того же изображения? - PullRequest
0 голосов
/ 05 сентября 2018

Почему загрузка нескольких изображений в Firebase приводит к загрузке одного и того же изображения? Например, 3 разных изображения были выбраны и загружены в базу данных. Предполагалось, что всего 3 изображения будут загружены в хранилище Firebase, но только первое изображение было записано в базу данных реального времени Firebase 3 раза (в зависимости от количества выбранных мной изображений).

Это мой код:

$("#btn-save").click(function() {

        var pname = 1;

        for (var i = 0; i < $("#wallpaper").prop("files").length; i++) {
            var wallpaper = $("#wallpaper").prop("files")[i];
            if ($.inArray(wallpaper["type"], validImgTypes) < 0) {
                $("#wallpaper").addClass("is-invalid");
                return;
            }

            //upload to firebase storage
            var category = $("#category").val();

            var name = wallpaper["name"];

            var ext = name.substring(name.lastIndexOf("."), name.length);

            var imgname = pname;

            console.log(name);

            var storageRef = firebase.storage().ref(category + "/" + imgname + ext);

            var uploadTask = storageRef.put(wallpaper);

            console.log(storageRef);

            pname++;


            uploadTask.on("state_changed",
                function progress(snapshot) {
                    var percentage = (snapshot.bytesTransferred / snapshot.totalBytes) * 100;

                    $("#upload-progress").html(Math.round(percentage) + "%");
                    $("#upload-progress").attr("style", "width:" + percentage + "%");
                    console.log(snapshot);
                },
                function error(err) {

                },
                function complete() {

                    storageRef.getDownloadURL().then(function(imageUrl) {

                        var database = firebase.database().ref("images").child(category);
                        var imageid = database.push().key;
                        console.log(imageUrl);


                        var image = {
                            "imgUrl": imageUrl,
                            "title": category,
                            "desc": category
                        };
                        console.log("title: " + category);
                        database.child(imageid).set(image, function(err) {
                            if (err) {
                                window.alert("Something went wrong");
                                console.log(err.message);
                            } else {
                                console.log("image added");
                                $("#upload-progress").html("Completed");
                            }
                        }); // end of database set
                    });
                }); // end of complete
        }
        //} // end of snapshot else
        //}); //end of database
    }); //end of save-button
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...