株式会社コードリック株式会社コードリック
トップ
TOP
会社情報
COMPANY
請負開発
ORDER
自社開発
PRODUCT
開発実績
RECORD
お知らせ
NEWS
ブログ
BLOG
お問い合わせ
CONTACT
TOPトップCOMPANY会社情報ORDER請負開発PRODUCT自社サービスRECORD開発実績NEWSお知らせBLOGブログCONTACTお問い合わせ
BLOG
ブログ
  1. TOP > 
  2. BLOG
  3.  > プログラミング
  4.  > firebaseでエミュレーターを起動する
2023/11/10

firebaseでエミュレーターを起動する

プログラミング
こんにちは、アプリケーション開発部門の岡田です。

現在自分はあるプロジェクトの作り始めにいるのですが、基本的に自分の会社ではバックエンドのfirebaseを使用して開発しています。
本番にデプロイするまでのテストの過程でvitestというテストツールも使いますが、より本番環境に近い状況での使用を確認するためにエミュレーターも使用しています。

そのため今回はその使用方法についてお話ししたい思います。
なお使用しているのは大まかに以下の4つです。
・vue3
・vite
・firebase
・typescript

ではfirebaseの初期設定はすでに終わっている体で話を進めていきます。

まず現在あるプロジェクトにてfirebase emulatorsの初期設定を行います。
ターミナルを起動し、プロジェクトのルートディレクトリ上でfirebase init emulatorsと入力してください。

すると次にどのエミュレータを使用するかの選択肢が表示されるので使いたいものを選んでください。

エミュレータセレクト

セットアップが完了したら、まずプロジェクト自体をローカル環境で起動します。その上でfirebase emulators:startと打ってみましょう。
エミュレータ起動

エミュレータUI
UI画面ではエミュレーターの種類が並んでいると思います。もし仮にやっぱりstorageも使いたかった!となっても問題ありません。firebase init emulatorsと打つことで、再度使いたいemulatorsの種類を選び直すことができます。

さあこれでエミュレーターを使えるぞ!と思いきやまだ使えません。。。
init Firebaseされているファイル内で、emulatorへと繋げる処理を加えなければなりません。
今回自分はAuthentication,functions,firestoreの三つでテストしたかったのでこの三つを呼び出しています。
isEmulatorを定義しているのは、この部分をtrue,falseで切り替えることで簡単にemulator環境へと切り替えるためです。

initFirebase

これをセットした状態で、再度firebase emuators:startと打ってみましょう(先ほど起動したままなら念のため一旦ctrl+cでエミュレーターを止めて、再度起動してみましょう)

その状態で、起動しているプロジェクトのvueのlocalhostページをのぞいてみると。。。

エミュレータ起動中

画面下にエミュレーター起動中の文字が!これで実際のdbではなくエミュレータの仮想dbにつながることができました。
 

【Authenticationのテスト】


試しにAuthenticationのログイン機能を試してみます。

まずはエミュレーターUI上でAuthenticationタグをクリック。そしてAdd userをクリックしましょう。
ここで最低限の情報を設定します。Display name,Email(optional),passwordぐらいでいきましょう。
それでsaveすることでユーザー情報が追加されます。

エミュレータ仮ユーザー

次にプロジェクトのページ内にクリックイベントを追加します。
そのクリックイベントをトリガーにfirebaseで用意されている関数を使ったログインを実験してみます。
うまくいけばconsole上にユーザー情報が返ってきます。
authentication関数

エミュレータログイン結果

ユーザー情報が表示されています!成功です!

【CloudFunctionのテスト】


続いてCloudFunctionのエミュレーターでのテストもやってみます。
functionsフォルダ内に関数を書き保存。

ファンクションテスト関数

今回は単純なHello,Cloud Functions!とメッセージが表示されるhelloWorld関数を用意しました。
どれだけ関数は動いているかなとエミュレーターのUIタブからfunctionsの画面をのぞいてみます。

。。。って、あれ?関数名がないけど、動いてるの?
一度emulatorを止めて再起動してみます。しかしターミナル上でも先ほど用意した関数の名前の名の字も表示されていません。

実はこのままではCloud Functionsの関数をエミュレータ上で確認することはできません。
一度tsで書かれた内容をjsにコンパイルする必要があります。

そのためプロジェクトのpackage.json内に記載のbuildコマンドを実行し、一度コンパイルしてあげます。

その上でfirebase emulators:startとしてあげると。。。。
ターミナル上に関数名が表示されました!

ファンクションコンパイル

続いてUI画面上では。。。

エミュレータファンクションUI

出ています!

では試しにこのhelloWorld関数を呼び出してみます。
新たにターミナルを起動し、その中でcurlを使用し関数を呼び出してみます。

ファンクションテスト結果

成功です!
emulatorのUI側にも関数を起動した時間が記録されたものが更新されているのを確認できると思います。

firebaseの設定含め、何かと初期設定が自分は苦手なので備忘録も兼ねて紹介させていただきました。
見た方への助けとなれば幸いです。

それではまた!

 
back
トップ
TOP
会社情報
COMPANY
請負開発
ORDER
自社サービス
PRODUCT
開発実績
RECORD
お知らせ
NEWS
ブログ
BLOG
お問い合わせ
CONTACT
トップ
TOP
会社情報
COMPANY
請負開発
ORDER
自社サービス
PRODUCT
開発実績
RECORD
お知らせ
NEWS
ブログ
BLOG
お問い合わせ
CONTACT
株式会社コードリック
〒920-0362 石川県金沢市古府3丁目45-2
TEL 076-249-8388 / FAX 076-203-0044
SDGsのロゴ
株式会社コードリック
〒920-0362 石川県金沢市古府3丁目45-2
TEL 076-249-8388 / FAX 076-203-0044
プライバシーポリシー
SDGsのロゴ
©株式会社コードリック. All Rights Reserved.プライバシーポリシー
©株式会社コードリック. All Rights Reserved.