Nuxt + Firestore やってみた
目的
新年度となるので、保育園の新担任の予想を投稿して、共有するアプリを作った。
いつもReact x Firebase はやるけど、Nuxt でやったことなかったのでやってみた。
Firebase関連のところだけ
~/plugin/firebase.js
import firebase from 'firebase/app' import 'firebase/firestore'; import 'firebase/analytics' if (!firebase.apps.length) { firebase.initializeApp({ // 設定を記載 }) } // 無駄にanalyticsもONにしてみた。 firebase.analytics(); export default firebase
~/store/index.js
import Vue from 'vue'; import firebase from "~/plugins/firebase.js"; const db = firebase.firestore(); export const actions = { initItems (context) { db.collection("items").orderBy("like", "desc").get() .then(querySnapshot => { querySnapshot.forEach((doc) => { context.commit('addItem', { id: doc.id, item: doc.data() }); }); }) .catch((error) => { console.log("Error getting documents: ", error); }); }, fetchItem (context, id) { db.collection("items").doc(id).get() .then(doc => { const data = doc.data(); context.commit('setTitle', data.title); context.commit('setSelectedUsers', data.users); }) .catch((error) => { console.log("Error getting documents: ", error); }); }, deleteItem (context, id) { context.commit('removeItem', id); db.collection("items").doc(id).delete().then(function() { console.log("Document successfully deleted!"); }).catch(function(error) { console.error("Error removing document: ", error); }); }, async addLike(context, param) { await db.collection('items').doc(param.id).update({ like: param.count + 1 }); } }
やっぱりFirebaseは楽!楽しくなって、無駄にいいね機能とかもつけた!
しかし、3日後担任が発表されたので開発から3日でお蔵入り...悲しい。