Почему загрузка нескольких изображений в 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