[我正在尝试使用如下代码所示的javascript循环获取Firebase存储的某些文件的下载URL。它正确地创建了元素,但仅为第二个元素分配了一个“ src”(在使用2个文件的情况下)。
var photosContainer = document.getElementById('photosContainer');
var photoNumber = firebase.database().ref('main/' + keyParent).child(key + '/number_photos');
photoNumber.on('value', function(snapshot){
for(var i = 0; i < snapshot.val(); i++){
var divPhoto = document.createElement('div');
photosContainer.appendChild(divPhoto);
var photo = document.createElement('img');
photo.style.width = '100%';
divPhoto.appendChild(photo);
var photosStorage = firebase.storage().ref('main/');
photosStorage.child(i + key).getDownloadURL().then(function(url) {
photo.src = url;
}).catch(function(error) {
// Handle any errors
console.log('An error occurred.')
});
}
})
当getDownloadURL()从Firebase获得其文件路径时,“ photo.src = url;”。是第二个元素对象。
它通过创建一个数组,将URL添加到该数组,然后擦除先前的元素并在array.forEach()中创建新的元素来工作。