【发布时间】:2019-08-18 08:40:21
【问题描述】:
我正在开发一个以 firebase 为后端的烹饪 android 应用程序,我需要在 firebase stoarge 中上传多个食谱图像,然后将下载网址存储到 firebase 数据库中。
我设法将文件上传到 firebase,但在获取这些文件的 downloadUrl 时遇到了一些麻烦。 我已经创建了一组承诺来上传文件,并且我已经创建了另一个数组来存储我在完成上传任务时获得的每个文件的 url。
这是我的代码
var promises = [];
for (var i=0 ;i< prepaImages.length;i++)
{
//alert(prepaImages[i].name);
var storageRef = firebase.storage().ref("receipes"+"/"+category+"/"+title+"/"+uploadTime+prepaImages[i].name );
var uploadTask = storageRef.put(prepaImages[i]);
promises.push(uploadTask);
uploadTask.on('state_changed', snapshot => {
var percentage = (snapshot.bytesTransferred / snapshot.totalBytes) * 100;
$("#prepaImageUploadprogress").html(Math.round(percentage)+"%");
$("#prepaImageUploadprogress").attr("style", "width:"+percentage+"%");
}, error => { alert(error) }, () => {
uploadTask.snapshot.ref.getDownloadURL().then(downloadURL => {
//prepaImagesUrl+="+"+downloadURL;
prepaImagesUrl.push(downloadURL);
});
});
问题是我得到了一个上传文件数量减一的数组(长度应该等于上传文件的数量)并且它具有相同的值(相同的下载网址) .任何帮助将不胜感激 谢谢。
【问题讨论】:
标签: javascript firebase firebase-storage