【Nuxt.js】Firebase와의 제휴 방법

firebase 패키지 설치



터미널
プロジェクト名$ npm install --save firebase

firebase plugin 만들기



터미널
プロジェクト名$ touch plugins/firebase.js

plugins/firebase.js
import firebase from 'firebase/app'
import 'firebase/firestore'

if (!firebase.apps.length) {
  firebase.initializeApp(
    {
      apiKey: process.env.FIREBASE_API_KEY,
      authDomain: process.env.FIREBASE_AUTH_DOMAIN,
      databaseURL: process.env.FIREBASE_DATABASE_URL,
      projectId: process.env.FIREBASE_PROJECT_ID,
      storageBucket: process.env.FIREBASE_STORAGE_BUCKET,
      messagingSenderId: process.env.FIREBASE_MESSAGING_SENDER_ID,
      appId: process.env.FIREBASE_APP_ID,
      measurementId: process.env.FIREBASE_MEASUREMENT_ID
    }
  )
}

export default ({ app }, inject) => {
  inject('firebase', firebase);
}


환경 변수의 설정 방법은 이쪽↓
【Nuxt.js】 「dotenv」를 사용한 환경 변수의 설정 방법

nuxt.config.js 설정



nuxt.config.js

//...省略

  // Plugins to run before rendering page (https://go.nuxtjs.dev/config-plugins)
  plugins: [
    '~/plugins/firebase'
  ],

//...省略

동작 확인


pages/index.vue 내부에 송신 버튼을 마련하고,
클릭으로 firestore에 데이터를 보냅니다.

pages/index.vue
<template>
  <div class="container">
    <button @click="submit">送信</button>
  </div>
</template>

<script>
export default {
  methods: {
    submit() {
      const db = this.$firebase.firestore();
      db.collection('user').add({ name: 'hoge' })
        .then(() => {
          console.log('成功');
        })
        .catch((e) => {
          console.log(e.message);
        });
    }
  }
}
</script>

좋은 웹페이지 즐겨찾기