私はVueとFirebaseを初めて使いました。 VueJSでは、Firebaseの記憶域(FriendlyChat.prototype.setImageUrl)に保存されている画像の正しい画像URLを返すFirebase friendlychat関数を複製しようとしています。私はこの機能をvueコンポーネントで定義しています。vue.js vuefire firebase storage image url
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の中に正しい方法を把握することはできませんすべてのヘルプは歓迎です!