Хорошо, я сделал следующее:
// actions.ts
getDataXY(context) {
context.commit('setLoading', true)
xyAPI.setupXYListener(context)
},
onXYChanged({ commit }, payload) {
commit('setLoading', false)
if (payload.xy) {
commit('setXY', payload.xy)
}
if (payload.err) {
commit('setErrorMessage', payload.err)
}
},
// xyAPI.ts
setupXYListener(context: any) {
xyCollection.onSnapshot(
snapshot => {
const xy = snapshot.docs[0].data()
context.dispatch('onXYChanged', { xy: xy, err: null })
},
err => {
context.dispatch('onXYChanged', { xy: null, err: err })
}
)
},
На всякий случайвидит лучшую архитектуру, структуру или другие улучшения, я очень благодарен за комментарии.