Firebase存储-等待所有上传任务完成

时间:2019-03-29 10:14:12

标签: react-native

我正在使用uploadTask.on作为Firebase,但我想在所有上传完成后触发...我设法为每个任务执行了此操作,但并非为所有任务都执行

在下面的代码中,我尝试使用Promise.all,但无法正常工作

mediaHandling(keyTag){
  var t=0
  var linkArray=[]
  const promises=[]

      this.props.sMedia.map(e=>{

      this._urlToBlob(e.uri).then(data=>{
        t=t+1

        const uploadTask =firebase.storage().ref('MedicalCasePics/'+keyTag+'/'+t).put(data,{customMetadata:{'Case':keyTag}})
        promises.push(uploadTask);


              uploadTask.on('state_changed', function(snapshot){

              }, function(error) {

              }, function() {

                uploadTask.snapshot.ref.getDownloadURL().then(function(downloadURL) {

                  linkArray.push(downloadURL)

                firebase.database().ref('Post/').child(keyTag).child('Media/').update(
                    linkArray
                 ) 
                }) 
              }) 
        }) 
      })
      Promise.all(promises).then(value => {
        console.log('all uploads complete');
    }); 
}

0 个答案:

没有答案