无法通过js循环下载Firebase存储文件

问题描述 投票:0回答:2

[我正在尝试使用如下代码所示的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.')
   });
  }
 })
javascript loops firebase-realtime-database firebase-storage
2个回答
0
投票

当getDownloadURL()从Firebase获得其文件路径时,“ photo.src = url;”。是第二个元素对象。


0
投票

它通过创建一个数组,将URL添加到该数组,然后擦除先前的元素并在array.forEach()中创建新的元素来工作。

© www.soinside.com 2019 - 2024. All rights reserved.