download循环中的urUR状态更改

时间:2017-10-02 20:34:30

标签: javascript loops firebase state firebase-storage

我正在将一系列o图像上传到firebase存储,我需要将这些图像的所有URL链接到firebase数据库。这是我到目前为止使用的代码:

var imgArray = []

      for (var i=0; i < document.getElementById("myFile").files.length; i++){

        var selectedFile = document.getElementById("myFile").files[i];

        var selectedStorageRef = firebase.storage().ref(this.estado + "/" + this.cidade + "/" + document.getElementById("nome-do-pico").value + "/" + selectedFile.name);

        var uploadTask = selectedStorageRef.put(selectedFile);


        uploadTask.on('state_changed', null, null, function (snapshot){
          var downloadURL = uploadTask.snapshot.downloadURL;
          imgArray.push(downloadURL);
          console.log(imgArray);

          });

      }

我们的想法是首先将它们全部放入数组中,但我总是得到最后一个URL。如果我尝试上传3个图像,例如有时我甚至会得到一个[null,URL,URL]或[null,null,URL]数组。我很少得到3个URL,并且在每种情况下它们都是相同的。

2 个答案:

答案 0 :(得分:0)

也许在downloadURL声明的开头删除var

答案 1 :(得分:0)

LIBS += -framework VideoDecodeAcceleration 方法返回一个promise,你应该使用libavcodec.a(vda_h264.o)方法对数组进行推送。

这样的事情:

.put()