上传图片后,Vue Firebase 无法获取图片 url
Posted
技术标签:
【中文标题】上传图片后,Vue Firebase 无法获取图片 url【英文标题】:Vue Firebase cannot not fetch image url after uploading image 【发布时间】:2021-01-24 15:25:09 【问题描述】:createMeetup( commit, getters , payload)
const meetup =
title: payload.title,
location: payload.location,
desciption: payload.desciption,
date: payload.date.toISOString(),
creatorId: getters.user.id
;
let imageUrl;
let key;
firebaseApp
.database()
.ref("meetups")
.push(meetup)
.then(data =>
key = data.key;
return key;
)
.then(key =>
const filename = payload.image.name;
const ext = filename.slice(filename.lastIndexOf("."));
return firebaseApp
.storage()
.ref("meetups/" + key + "." + ext)
.put(payload.image);
)
.then(fileData =>
// TODO: Image ref not found
imageUrl = fileData.ref.getDownloadURL();
return firebaseApp
.database()
.ref("meetups")
.child(key)
.update( imageUrl: imageUrl );
)
.then(() =>
commit("createMeetup",
...meetup,
imageUrl: imageUrl,
id: key
);
)
.catch(err =>
console.log(err);
);
,
TODO 部分后报错。我认为它提供了承诺,但无法弄清楚如何处理它。错误是无效的道具:道具“src”的类型检查失败。期望的字符串,对象,得到了 Promise
【问题讨论】:
【参考方案1】:getDownloadURL() 返回一个承诺,而不是一个字符串。需要使用promise异步获取URL,如documentation所示。
...
.then(fileData =>
return fileData.ref.getDownloadURL();
)
.then(imageUrl =>
return firebaseApp
.database()
.ref("meetups")
.child(key)
.update( imageUrl: imageUrl );
)
...
【讨论】:
以上是关于上传图片后,Vue Firebase 无法获取图片 url的主要内容,如果未能解决你的问题,请参考以下文章
上传图片后在 Firebase 中如何获取 Url? [复制]
Flutter 无法上传从 multi_image_picker 获取的多张图片
成功将图像上传到 Firebase 存储后,Firebase 获取下载 URL
vue中input标签上传本地文件或图片后获取完整路径,如E:medicineOfCHstageImagexxx.jpg