Я пытаюсь создать веб-приложение с vue, vuex и пытаюсь интегрировать его с базой данных Firebase. Но эта ошибка появляется, когда я пытаюсь разместить данные в базе данных:
[Vue warn]: Error in v-on handler (Promise/async): "FirebaseError: [code=invalid-argument]:
Function DocumentReference.set() called with invalid data. Unsupported field value:
a function (found in field dispatch)" found in
---> <Subreddit> at src/views/Subreddit.vue
<App> at src/App.vue
<Root>
Код скрипта внутри модуля "Subreddit. vue":
<script>
import { mapState, mapActions } from 'vuex';
export default {
data: () => ({
post: {
title: '',
description: '',
URL: '',
},
}),
computed: mapState('subreddit', ['posts']),
methods: {
...mapActions('subreddit', ['createPost']),
async onCreatePost() {
if (this.post.title && (this.post.description || this.post.URL)) {
await this.createPost(this.post);
}
},
},
};
</script>
Это subreddit. js из каталога магазина, в который записан createPost (), внутри действий,
import db from '@/db';
const posts = db.collection('posts');
const state = {
posts: [],
};
const actions = {
async createPost(post) {
console.log(post); // eslint-disable-line no-console
const result = posts.doc();
post.id = result.id; // eslint-disable-line no-param-reassign
await posts.doc(post.id).set(post);
},
};
export default {
namespaced: true,
state,
actions,
};
Вывод для console.log(post)
из createPost(post)
слишком длинный, но это так:
{getters: {…}, state: {…}, rootGetters: {…}, dispatch: ƒ, commit: ƒ, …}
commit: ƒ (_type, _payload, _options)
dispatch: ƒ (_type, _payload, _options)
getters: {}
id: "VassMHMvvK2UlfS79bDp"
rootGetters: {}
rootState: {__ob__: Observer}
state: {__ob__: Observer}
__proto__: Object
В чем ошибка, я не могу ее отладить.