我正在开发离子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();
});
}
我刚发现令牌正在下载但不是图片
答案 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();
});
}