ищет немного помощи
Я использую vue вместе с vuex и firebase для приложения, которое я создаю. Я был в состоянии разрешить пользователю загружать изображение профиля с их компьютера в хранилище базы данных, и изображение также отображается на его панели управления. Проблема в том, что когда я обновляю страницу, изображение исчезает. Я не могу сохранить изображение для этого пользователя постоянно, так как при каждом обновлении изображение исчезает. Вот мой код для store.js:
fb.auth.onAuthStateChanged(user => {
if(user) {
store.commit('setCurrentUser', user)
store.dispatch('fetchUserProfile')
}
})
export const store = new Vuex.Store({
state: {
currentUser: null,
userProfile: {},
userProfilePic: null
},
actions: {
clearData({commit}) {
commit('setCurrentUser', null)
commit('setUserProfile', {})
},
fetchUserProfile ({ commit, state }) {
fb.usersCollection.doc(state.currentUser.uid).get().then(res
=> {
commit('setUserProfile', res.data())
}).catch(err => {
console.log(err)
})
}
},
mutations: {
setCurrentUser(state, val) {
state.currentUser = val
},
setUserProfile(state, val) {
state.userProfile = val
},
setUserProfilePic(state, val) {``
state.userProfilePic = val
}
}
})
А вот код, который вызывает изменение файла при загрузке изображения:
<script>
const fb = require('../firebaseConfig.js')
import * as firebase from 'firebase'
import { mapState } from 'vuex'
export default {
data () {
return {
imageUrl: null
}
},
methods: {
onPickProfilePic () {
this.$refs.fileInput.click();
},
filePicked (event) {
var file = event.target.files[0]
let filename = file.name
var user = firebase.auth().currentUser
var storageRef = firebase.storage().ref(user.uid +
'/profilePic/' + filename)
var task = storageRef.put(file)
var fileReader = new FileReader()
fileReader.addEventListener('load', () => {
this.userProfilePic = fileReader.result
})
fileReader.readAsDataURL(file)
}
},
computed: {
...mapState(['currentUser']),
userProfilePic: {
get () {
return this.$store.state.userProfilePic
},
set (val) {
this.$store.commit('setUserProfilePic', val)
}
}
}
}
Я прошел через stackoverflow, но, похоже, ни один вопрос не решает мою проблему. Если вам нужен дополнительный код, дайте мне знать. Заранее большое спасибо за любую помощь или совет.