Вам нужно будет использовать asyn c l oop, чтобы успешно запустить код. Поскольку задача загрузки Firebase имеет асин c, l oop не будет продолжаться, как только API вернет результат успеха. Проверьте это здесь:
Javascript asyn c https://caolan.github.io/async/v3/
Так что для вашего кода это будет выглядеть примерно так:
async.eachLimit(files,1,function(image,callback){
//Your firebase upload code
uploadTask.on(firebase.storage.TaskEvent.STATE_CHANGED, // or 'state_changed'
function(snapshot) {
var progress = (snapshot.bytesTransferred / snapshot.totalBytes) * 100;
console.log('Upload is ' + progress + '% done');
switch (snapshot.state) {
case firebase.storage.TaskState.PAUSED: // or 'paused'
console.log('Upload is paused');
break;
case firebase.storage.TaskState.RUNNING: // or 'running'
console.log('Upload is running');
break;
}
},
function() {
uploadTask.snapshot.ref.getDownloadURL().then(function(downloadURL) {
console.log('File available at', downloadURL);
//this is important - tells the async to go
//to the next iteration result
callback(null)
});
});
},function(err){
// do what you want to after upload everything
}