保存图像使用firebase Url绘制离子3

时间:2018-01-02 08:42:28

标签: angular ionic-framework firebase-storage

我正在开发离子3应用程序,它可以从firebase下载图像。 图片可以通过提供网址成功下载。

通过定期链接到this

等图片

图像将被下载。这是有效的。

但如果我给出一个firebase存储网址 比如https://firebasestorage.googleapis.com/v0/b/myapp.appspot.com/o/1.jpg?alt=media&token=xxx

它不会下载。在控制台我可以看到图像路径,当我点击它将在浏览器中打开。但是当我在Android上运行它将无法下载。

我该如何解决这个问题?

我的下载代码

download()
{
 var url =  'https://firebasestorage.googleapis.com/v0/b/myapp.appspot.com/o/1.jpg?alt=media&token=ea450d47-b12c-4bcc-9e35-c2aba22bc155'
      var album = 'MyAppName';
      this.photoLibrary.saveImage(url,album).then((entry=>{
        console.log('download complete: ' + entry.photoURL);
        this.presentToast('download complete:' + entry.photoURL);
      }),
      (error) => {
        // handle error
        this.presentToast(error);
        this.loader.dismiss();
      });
}

我刚发现令牌正在下载但不是图片

1 个答案:

答案 0 :(得分:1)

首先,您需要将图像存储在firebase上,将“MyImage”更改为firebase存储。 然后通过调用saveToAlbum函数

获取url并将图像保存在相册中
getImage(image: string) {
     try {
         this.firebase.storage().ref().child("/myImages/" + image).getDownloadURL().then(function(url) {
             this.saveToAlbum(url)
         });
     } catch (e) {
         console.log(e);
     }
 }


saveToAlbum(url){
let album = 'MyAppName';
  this.photoLibrary.saveImage(url,album).then((entry=>{
    console.log('download complete: ' + entry.photoURL);
    this.presentToast('download complete:' + entry.photoURL);
  }),
  (error) => {
    // handle error
    this.presentToast(error);
    this.loader.dismiss();
  });

}