我是 Vue 和 Firebase 的新手。在 VueJS 中,我试图复制 Firebase friendlychat 函数,该函数返回存储在 Firebase 存储 (FriendlyChat.prototype.setImageUrl) 中的图像的正确图像 URL。我在 vue 组件中定义了这个函数:
let messagesRef = fbdb.ref('messages')
export default{
firebase: {
messages: messagesRef.limitToLast(20)
},
methods: {
getImageUrl: function (imageUri) {
// If the image is a Firebase Storage URI we fetch the URL.
if (imageUri) {
this.showImage = true
if (imageUri.startsWith('gs://')) {
// var loadingimg = LOADING_IMAGE_URL // Display a loading image first.
fbstorage.refFromURL(imageUri).getMetadata().then(function (metadata) {
let img = metadata.downloadURLs[0]
console.log('firbase image url', img)
return img
})
}
else {
return imageUri
}
}
else {
this.showImage = false
return ''
}
} <...>
而在 HTML 模板中,如果我只是尝试调用该函数,它就不起作用。
<div v-for ="message in messages">
<img :src="getImageUrl(message.imageUrl)">
...
</div>
我无法在 Vue 中找出正确的方法来获取此函数的结果(因为它是一个承诺?)任何帮助表示赞赏!