Я пытаюсь загрузить изображение из моего хранилища Firebase, чтобы отобразить его в моем приложении Vue, загрузка из приложения в хранилище Firebase прошла успешно, однако при получении оно выдает ошибку, я использую Firebase SDK в настройка Vue CLI 3 и vuex для управления моим состоянием. Вот настройка функции в моих действиях в основном файле store.js
createMeetUp({commit, getters}, payload) {
//here my payload is an object contains the following props
const meetup = {
title: payload.title,
location: payload.location,
date: payload.date.toISOString(),
description: payload.description,
creatorId: getters.user.id
}
let imageUrl
let key
//now i am reaching out to the firebase database to store the above object
firebase.database().ref('meetup').push(meetup)
.then(data => {
key = data.key
return key
})
.then(key => {
//also in my payload object i stored an image file
//so here i am uploading the image to the firebase storage
const fileName = payload.image.name
const extension = fileName.slice(fileName.lastIndexOf('.'))
return firebase.storage().ref('meetup/' + key + '.' + extension).put(payload.image)
})
.then(imageInfo => {
//the issue is here in this then() block as i am stuck on how to retrieve the image from the storage to render it in the app
imageUrl = imageInfo.getDownloadURL()
return firebase.database().ref('meetups').child(key).update({
imageUrl: imageUrl
})
})
.then(() => {
//here i am simply commiting my mutation..
commit('createMeetUp', {
...meetup,
imageUrl: imageUrl,
id : key
})
})
.catch(err => console.log(err))
}
ошибка, которую я получаю:
TypeError: imageInfo.getDownloadURL не является функцией
Опять же, я полагаю, что проблема в блоке then()
, где я получаю изображение из хранилища базы данных.
заранее спасибо