如何将一组图像上传到 Firebase 存储?
Posted
技术标签:
【中文标题】如何将一组图像上传到 Firebase 存储?【英文标题】:How to upload an array of images to firebase storage? 【发布时间】:2016-11-08 07:46:16 【问题描述】:现在我正在使用 array.map 方法来上传每个文件并获取 url 作为响应,但问题是它在某些文件中给了我“C:\fakepath\pic1”,这会造成混乱,尽管它可以正确上传(意味着我已经在我的 firebase 存储中看到了图像)但没有得到响应的 url 这是我用来放置文件的代码
uploadPicsArr.map(function (pic, index)
var storageRef = fbStorage.ref('images/'+token+'/'+pic.name);
// Upload file to Firebase Storage
var uploadTask = storageRef.put(pic.file);
uploadTask.on('state_changed', null, null, function ()
var downloadUrl = uploadTask.snapshot.downloadURL;
userInfo[pic.name] = downloadUrl;
)
if (uploadPicsArr.length == index + 1)
fbDatabase.ref('users').push(userInfo).then(function (success)
browserHistory.push('/home');
);
)
fbStorage
: firebase.storage()uploadPicsArr
= 一个对象数组,每个对象都有一个属性名称和文件name
: 所选文件的名称file
: 选择的文件
请告诉我我做错了什么,或者是否有其他更好的方法来上传整个数组并获取每个文件的 URL 作为响应,那么它会更好
【问题讨论】:
【参考方案1】:我认为你忘记在完整函数中将快照作为参数传递:
uploadPicsArr.map(function (pic, index)
var storageRef = fbStorage.ref('images/'+token+'/'+pic.name);
// Upload file to Firebase Storage
var uploadTask = storageRef.put(pic.file);
uploadTask.on('state_changed', null, null, function (snapshot)
userInfo[pic.name] = snapshot.downloadURL;
)
if (uploadPicsArr.length == index + 1)
fbDatabase.ref('users').push(userInfo).then(function (success)
browserHistory.push('/home');
);
)
【讨论】:
不,这是一个承诺问题,比如我必须等待存储解决,而我不是 react app以上是关于如何将一组图像上传到 Firebase 存储?的主要内容,如果未能解决你的问题,请参考以下文章