フロントエンド

Firebase ver9をNuxt.jsで設定する方法

ウェブの業界は本当に変化が早いもので、

数ヶ月前は普通に使えたコードが、
バージョンアップしたら非推奨に変わったなんて事がよくあって。

久しぶりに『Firebase』を使ってみると
バージョンの違いでコードの書き方が代わり、
以前のコードが非推奨になっていたので、
備忘録がてら書き残しておくことにします。

アオキ
ちょっと目を離したらあっという間に変わっとりますね。。

記事執筆時のバージョン
– firebase ・・9.6.2
– Nuxt.js ・・ 2.15.7

Firebaseとは

『Firebase』は2011年にFirebase社が開発した、

『BaaS』『mBaaS』と呼ばれるサービスの名称です。

BaaS・・Backend as a Service

サーバー側で必要な仕組みが予め用意されていて、

開発者としてはサーバー側のインフラ周りを気にしないで開発ができるという代物で、

『サーバーレス』なんて呼ばれたりもします。

2014年にGoogleが買収し、いろんな機能を拡張し、今日に至ります。

Firebaseの開発キット(SDK)

『Firebase』はウェブ向け、iPhone向け、Android向け、Unity向けと
それぞれ開発キット(SDK)を用意しています。

SDK・・Software development kit(ソフトウェア開発キット)

それぞれバージョンがあって、定期的にアップデートされていると。

今回ウェブ版を設定しようとした所、

2021年9月にリリースされたver9と、それ以前のver8で推奨コードの書き方が変わっていました。

今回は『Vue.js』のフレームワークである『Nuxt.js』で設定したので
その方法を簡単にまとめておきます。

Firebase ver9 インストール

インストール方法は簡単です。
バージョン指定しなければ最新版、”9.*”と指定すればver9の最新版がインストールされます。

npm install firebase@"9.*"

@nuxtjs/firebaseはしばらく使えなそう

『Nuxt.js』で『Firebase』を設定するための専用ライブラリとして、

『@nuxtjs/firebase』 というものがあるのですが、

『@nuxtjs/firebase』の最新版( 8.2) をインストールしてみても、
『Firebase ver9』との依存関係でエラーがでてしまったので、

しばらくは『@nuxtjs/firebase』ではなく、素直に『Nuxt.js』の機能を使ってインストールする事にします。

Nuxt.jsにfirebase ver9をインストールする方法

『Nuxt.js』で設定するには『plugins』で取り込む方法が一般的なので、

pluginsフォルダを作成し、その中にfirebase.jsというファイルを作って、
その中に『firebase』を初期化(インスタンス化)するコードを書いておきます。

// plugins/firebase.js

import { initializeApp } from "firebase/app"

const firebaseConfig = {
  apiKey: "firebaseの管理画面よりコピペ",
  authDomain: "firebaseの管理画面よりコピペ",
  projectId: "firebaseの管理画面よりコピペ",
  storageBucket: "firebaseの管理画面よりコピペ",
  messagingSenderId: "firebaseの管理画面よりコピペ",
  appId: "firebaseの管理画面よりコピペ",
};

const firebaseApp = initializeApp(firebaseConfig);
export default (context, inject) => {
  inject('firebase', firebaseApp)
}

ver9ではimportで必要な機能(関数)だけをインポートする仕組みになっていて、
このコードではinitializeAppだけを使うということでインポートしています。

必要な機能だけをインポートすることで、軽量化、高速化を図っているようです。

『firebase』管理画面に記載されているコンフィグを書いて、
initializeApp()の引数にあてています。

『plugins』で設定した内容は『inject』を使うと
『pages』など他のファイルでも使うことができるようになります。

このコードだと、this.$firebase でインスタンス化された『firebase』を取得することができます。

『plugins/firebase.js』を作成後、

『Nuxt.js』の設定ファイルにあたる『nuxt.config.js』に追記します。

// nuxt.config.js

export default {
 // 略
 plugins : [ '@/plugins/firebase.js' ]
}

これでOKです。

『NoSQL』データベースである『Cloud Firestore』などを使う場合も、

『plugins』フォルダ内に書いてあげるか、

getFirestore()の引数に this.$firebase を渡してあげれば使えるようになります。

// pages/test.vue
<script>
import { getFirestore } from 'firebase/firestore' // Firestoreで使う機能をインポート


const db = getFirestore(this.$firebase) // pluginで設定した値を引数に設定する
// 略
</script>

firebase ver9をNuxt.jsに設定してみて

久々に、コードの断片だけを切り取って記事化してみたのですが、

分かる人がみればそうだよねと思ってもらえるだろうし、
玄人から見れば全然設定が足りないと思われるだろうし、
初心者が見ればなんのこっちゃになりそうだし、

テック記事って難しいなと改めて思えました。

追々この記事内容もまとめて『Udemy講座』にしていきますので、

もし興味があればそちらも参考にしていただければと思います。

アオキ
Udemy講座もりもりつくっております=3

関連記事一覧 (一部広告あり)

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

CAPTCHA


最近の記事

アーカイブ

  1. 生成AI

    Dify講座をリリースしました【非エンジニア向け】
  2. 生成AI

    2024/5/14 OpenAI発表 まとめ
  3. データベース

    MySQLの講座をリリースしました
  4. オンライン教材

    【React】初心者向け講座をリリースしました【MUI】【Udemy】
  5. オンライン教材

    【AWS】【初心者向け】インフラの基礎からわかる講座をリリースしました【Udem…
PAGE TOP
Ads Blocker Image Powered by Code Help Pro

広告ブロックを摘出しました!!

ブラウザ拡張を使用して広告をブロックしていることが摘出されました。

ブラウザの広告ブロッカーの機能を無効にするか、
当サイトのドメインをホワイトリストに追加し、「更新」をクリックして下さい。

あなたが広告をブロックする権利があるように、
当方も広告をブロックしている人にコンテンツを提供しない権利と自由があります。

Powered By
100% Free SEO Tools - Tool Kits PRO