Javascript 如何将图像阵列上载到firebase存储?
现在,我正在使用array.map方法上载每个文件并获取url作为响应,但问题是它在某些文件中为我提供了“C:\fakepath\pic1”,这会创建一个Mess,尽管它上载正确(意味着我在firebase存储中看到了图像),但没有返回url作为响应Javascript 如何将图像阵列上载到firebase存储?,javascript,firebase,firebase-storage,Javascript,Firebase,Firebase Storage,现在,我正在使用array.map方法上载每个文件并获取url作为响应,但问题是它在某些文件中为我提供了“C:\fakepath\pic1”,这会创建一个Mess,尽管它上载正确(意味着我在firebase存储中看到了图像),但没有返回url作为响应 这是我用来放置文件的代码 uploadPicsArr.map(function (pic, index) { var storageRef = fbStorage.ref('images/'+token+'/'+pi
这是我用来放置文件的代码
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
:所选文件的名称文件
:所选文件请告诉我我做错了什么,或者如果有其他更好的方法上载整个阵列并获得每个文件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 (snapshot) {
userInfo[pic.name] = snapshot.downloadURL;
})
if (uploadPicsArr.length == index + 1) {
fbDatabase.ref('users').push(userInfo).then(function (success){
browserHistory.push('/home');
});
}
})
我认为您忘记了将快照作为完整函数中的参数传递:
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');
});
}
})
不,这是一个承诺问题,就像我必须等待存储解决问题一样,我不是。不,这是一个承诺问题,就像我必须等待存储解决问题一样,我不是