Is there a way to upload multiple files to Firebase storage. It can upload single file within single attempt as follows.
JavaScript
x
28
28
1
fileButton.addEventListener('change', function(e){
2
//Get file
3
var file = e.target.files[0];
4
5
//Create storage reference
6
var storageRef = firebase.storage().ref(DirectryPath+"/"+file.name);
7
8
//Upload file
9
var task = storageRef.put(file);
10
11
//Update progress bar
12
task.on('state_changed',
13
function progress(snapshot){
14
15
var percentage = snapshot.bytesTransferred / snapshot.totalBytes * 100;
16
uploader.value = percentage;
17
},
18
function error(err){
19
20
},
21
function complete(){
22
var downloadURL = task.snapshot.downloadURL;
23
24
}
25
);
26
27
});
28
How to upload multiple files to the Firebase storage.
Advertisement
Answer
I found the solution for my above question and I like to put it here because it can be useful for anyone.
JavaScript
1
34
34
1
//Listen for file selection
2
fileButton.addEventListener('change', function(e){
3
//Get files
4
for (var i = 0; i < e.target.files.length; i++) {
5
var imageFile = e.target.files[i];
6
7
uploadImageAsPromise(imageFile);
8
}
9
});
10
11
//Handle waiting to upload each file using promise
12
function uploadImageAsPromise (imageFile) {
13
return new Promise(function (resolve, reject) {
14
var storageRef = firebase.storage().ref(fullDirectory+"/"+imageFile.name);
15
16
//Upload file
17
var task = storageRef.put(imageFile);
18
19
//Update progress bar
20
task.on('state_changed',
21
function progress(snapshot){
22
var percentage = snapshot.bytesTransferred / snapshot.totalBytes * 100;
23
uploader.value = percentage;
24
},
25
function error(err){
26
27
},
28
function complete(){
29
var downloadURL = task.snapshot.downloadURL;
30
}
31
);
32
});
33
}
34