如何在Firebase 5.0.4中获取上传图片的网址?

时间:2018-06-02 14:10:19

标签: javascript firebase firebase-storage

我将图片上传到服务器:

const fileData = await fb.storage().ref(`ads/my_img.jpg`).put(image)

在早期版本中获取所需上传图片的网址:

const imageSrc = fileData.metadata.downloadURLs[0]

但是在5.0.4中它不起作用。

在文档downloadURLs中已弃用:

/**
 * @deprecated
 * Use Reference.getDownloadURL instead. This property will be removed in a
 * future release.
 */
downloadURLs: string[];

getDownloadURL interface Reference const fileData = await fb.storage().ref(`ads/${ad.key}.${imageExt}`).put(image) const imageSrc = fileData.metadata.downloadURLs[0] commit('createAd', {imageSrc}) 方法我无法弄清楚如何使用它。

上传文件后,我需要从服务器获取渲染图像的URL。像这样:

downloadURLs[0]

如何为Firebase 5.0.4版本重写{{1}}?

4 个答案:

答案 0 :(得分:1)

const fileData = await fb.storage().ref(`ads/${ad.key}.${imageExt}`).put(image)
const imageSrc = await fileData.ref.getDownloadURL()

答案 1 :(得分:0)

下载网址会在结果快照中返回,如下所示:

const fileData = fb.storage().ref(`ads/${ad.key}.${imageExt}`).put(image)
.then((snapshot) =>{
    console.log(snapshot.downloadURL);
}

或者你可以获得像这样的现有对象的下载URL

storageRef.child('images/stars.jpg').getDownloadURL().then(function(url) {
  console.log(url)
}).catch(function(error) {
  // Handle any errors
});

此剪辑取自firebase developer page。如果您有任何疑问,我建议您查看该页面。大多数时候你可能会在那里找到答案。

答案 2 :(得分:0)

存储路径 ImageSrc 获取并保存到数据库的内容必须删除

const imageSrc = fileData.metadata.downloadURLs[0]

并改为开处方

const imageSrc = await fb.storage().ref().child(fileData.ref.fullPath).getDownloadURL()

答案 3 :(得分:-1)

const imageSrc = await fileData.ref.getDownloadURL()