2017-09-01 132 views
0

我有上传用相机拍摄的图片或从照片库中获取的图片的代码。上传发生和成功,该代码执行后:Firebase图片上传成功完成,但图片不在Firebase存储中

// Return a promise to catch errors while loading image 
    getMedia(options, square, username): Promise<any> { 
    //this.storage.get('username').then((val) => {this.username = val; console.log(this.username + "  getting usern34433245555555ame")}); 

    // Get Image from ionic-native's built in camera plugin 
    return this.camera.getPicture(options) 
     .then((fileUri) => { 

     // op Image, on android this returns something like, '/storage/emulated/0/Android/...' 
     // Only giving an android example as ionic-native camera has built in cropping ability 
     if (this.platform.is('ios')) { 

      return this.crop.crop(fileUri, { quality: 10 }); 
     } else if (this.platform.is('android')) { 
      // Modify fileUri format, may not always be necessary 
      fileUri = 'file://' + fileUri; 

      /* Using cordova-plugin-crop starts here */ 
      return this.crop.crop(fileUri, { quality: 10 }); 
     } 
     }) 
     .then(newPath => { 
     console.log(newPath); 
     if(newPath) { 
      let fileName = newPath.substring(newPath.lastIndexOf("/") + 1, newPath.length); 
      let filePath = newPath.substring(0, newPath.lastIndexOf("/")); 
      this.file.readAsDataURL(filePath, fileName).then(data => { 
      //let strImage = data.replace(/^data:image\/[a-z]+;base64,/, ""); 
      //this.file.writeFile(this.file.tempDirectory, "image.jpg", strImage); 
      //let blob = dataURItoBlob(data); 
      var dataURL = data; 

      console.log(username + " this is passed usernameeeeeeeeee =="); 

       let image  : string = 'profilepicture.png', 
       storageRef : any, 
       parseUpload : any; 

       return new Promise((resolve, reject) => { 
       storageRef  = firebase.storage().ref('/profile/' + username + '/' + image); 
       parseUpload  = storageRef.putString(dataURL, 'data_url'); 

       console.log(username + "  username in promise !!!!!!"); 

       console.log("got to storageref after"); 
       parseUpload.on('state_changed', (_snapshot) => { 
        // We could log the progress here IF necessary 
        console.log('snapshot progess ' + _snapshot); 
        }, 
        (_err) => { 
        reject(_err); 
        console.log(_err.messsage); 
        }, 
        (success) => { 
        console.log(' was  a  suc cesssssss'); 
        resolve(parseUpload.snapshot); 
        }) 
       }).then(value => { 
        //this.af.list('/profile/' + self.username).push({ pic: image }); 
       }).catch(function(error) { 
        console.log(error.message); 
       }); 

      //let file 
      }); 
      } 
     }); 

    } 

console.log(username + " username in promise !!!!!!");控制台输出是正确的,我认为这是使用了正确的storageRef

控制台输出的上传是这样的:

[20:35:56] console.log: Blue username in promise !!!!!! 
[20:35:56] console.log: got to storageref after 
[20:35:56] console.log: snapshot progess [object Object] 
[20:35:57] console.log: snapshot progess [object Object] 
[20:35:57] console.log: was a suc cesssssss 

但是,当我看着火力存储,新的文件夹和图像不存在。 Firebase存储没有变化。为什么它实际上不存储在存储中?

回答

0

storageRef = firebase.storage().ref('/profile/' + username + '/' + image);

应该是:

storageRef = firebase.storage().ref('/settings/' + username + '/' + image);

我一直在寻找在错误的文件夹上传。

相关问题