我正在尝试使用如下代码所示的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.')
});
}
})
答案 0 :(得分:0)
当getDownloadURL()从Firebase获得其文件路径时,“ photo.src = url;”。是第二个元素对象。
答案 1 :(得分:0)
它的工作方式是创建一个数组,将URL添加到该数组中,然后擦除以前的元素,并在array.forEach()内部创建新的元素。