Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将图像阵列上载到firebase存储?_Javascript_Firebase_Firebase Storage - Fatal编程技术网

Javascript 如何将图像阵列上载到firebase存储?

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

现在,我正在使用array.map方法上载每个文件并获取url作为响应,但问题是它在某些文件中为我提供了“C:\fakepath\pic1”,这会创建一个Mess,尽管它上载正确(意味着我在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
:所选文件的名称
文件
:所选文件

请告诉我我做错了什么,或者如果有其他更好的方法上载整个阵列并获得每个文件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');
        });
    }
})

不,这是一个承诺问题,就像我必须等待存储解决问题一样,我不是。不,这是一个承诺问题,就像我必须等待存储解决问题一样,我不是