firebase - Vue + Firebase 存储图像不显示
问题描述
我是 Vue 和 Firebase 的新手。我成功将图像上传到 Firebase 存储。但无法显示图像。在这里我附上我的代码。如果你能给我任何其他显示图像的解决方案。那也会很棒。
模板
<tr v-for="service in services" v-bind:key="service['.key']">
<img :src="getImgUrl(service.fileName)" width="50px">
<td>{{service.service}}</td>
<td>${{service.price}}</td>
</tr>
脚本
firebase: {
services: serviceRef
},
methods:{
getImgUrl(img){
var imgUrl = firebase.storage().ref('service_images/'+ img).getDownloadURL();
return imgUrl;
}
}
解决方案
因为getDownloadURL()
返回一个承诺,所以我建议实现为每个servicereadyCallback
填充一个data
具有相应图像 URL 的对象。
data () {
return {
serviceImages: {} // start with an empty object
}
},
firebase: {
services: { // make this a config object instead
source: serviceRef,
readyCallback () {
this.services.forEach(({fileName}) => {
firebase.storage()
.ref(`service_images/${fileName}`)
.getDownloadURL()
.then(img => {
// use Vue.set for reactivity
this.$set(this.serviceImages, fileName, img)
})
})
}
}
}
在你的模板中,类似
<img :src="serviceImages[service.fileName]"...
推荐阅读
- angular - 数据在延迟后加载到 UI 上
- mysql - 验证用户名是否已存在
- php - 如何从 PHP 的下拉菜单中预先选择一个选项
- python-3.x - 客户端连接后通过ws从其他类发送数据
- c# - 为什么 context.SaveChanges() 会更新表中的每一行?
- php - Laravel 在迁移时显示错误
- php - SQL/PHP:在另一个表(多个表)上没有匹配项的联接
- python - python:无法打开文件'Functions.py':[Errno 2
- mongodb - 如何使用 MongoDB 在 Prisma ORM 中创建类别及其子类别
- google-cloud-platform - Google cloud storage, public objects but not public project