如何从 Firebase 存储访问图像?

Posted

技术标签:

【中文标题】如何从 Firebase 存储访问图像?【英文标题】:How to access an image from firebase storage? 【发布时间】:2020-09-07 05:45:55 【问题描述】:

我想访问已上传到 Firebase 存储的图像。我已经尝试过他们在https://firebase.google.com/docs/storage/web/download-files 中告诉我的内容,但它不起作用。

我想做的很简单。我有一个带有来源的“img”标签。 使用 Vue.js,我想将上传的文件路径分配给图像源。

这就是我现在拥有的:

loadImage(details) 
  console.log(details.email);
  var storage = firebaseApp.storage();
  var gsReference = storage.refFromURL('gs://icachatdam.appspot.com/profilePics/jordi@test.com/profPic.png')
  this.picture = gsReference.fullPath;

其中变量“picture”是图片来源:

<q-img :src="this.picture" spinner-color="white" style="height: 140px; max-width: 150px" />

【问题讨论】:

您不能使用 gs:// URL 将图像加载到浏览器中。您必须按照文档中的说明获取下载 URL。 firebase.google.com/docs/storage/web/… 【参考方案1】:

感谢 Doug 的回复,我已经进行了更多测试,这终于对我有用:

loadImage(details) 
  var starsRef = firebaseApp.storage().ref().child('profilePics/'+details.email+'/profPic.png');

  starsRef
    .getDownloadURL()
    .then(url => 
      this.pictureURL = url;
      //console.log(this.pictureURL);
    );

【讨论】:

【参考方案2】:

问题可能在这里:

<q-img :src="this.picture" spinner-color="white" style="height: 140px; max-width: 150px" />

代替这个,写

<q-img :src="picture" spinner-color="white" style="height: 140px; max-width: 150px" />

让我知道这是否适合您。如果没有,我会再考虑一下。

【讨论】:

以上是关于如何从 Firebase 存储访问图像?的主要内容,如果未能解决你的问题,请参考以下文章

如何访问从 Firebase 下载的 SceneKit 文件?

如何使用 Firebase 存储“直接链接”到图像

如何更改firebase存储的位置?

在颤动中将图像从图像选择器保存到firebase存储

如何将图像从颤动的资产上传到firebase存储?

Firebase:如何获取不匹配图像的差异并从存储中删除图像