スキップしてメイン コンテンツに移動

Firebaseでエミュレータを設定(確認)する方法

サーバサイドのfirebase-adminの場合

Node.jsを利用したサーバー側では、process.envを参照するとFirebase functionsの実行環境の情報を取得できます。
firebase-adminを利用したエミュレータ環境の設定もprocess.envから確認できます。index.jsに下記のログ出力を加えてみます。

console.log(JSON.stringify(process.env, null, 3));

firebase emulators:startを実行してエミュレータ環境でfirebaseを起動させると、エミュレータの設定状況に応じて、下記のようなエントリがログ出力されます。

"FIREBASE_AUTH_EMULATOR_HOST": "localhost:9099"
"FIREBASE_DATABASE_EMULATOR_HOST": "localhost:9000",
"FIREBASE_STORAGE_EMULATOR_HOST": "localhost:9199",
"FIRESTORE_EMULATOR_HOST": "localhost:8080",
"FUNCTIONS_EMULATOR": "true"

index.js内でfirebase-adminから作成されたサービスはすべてエミュレータに接続されます。

const admin = require('firebase-admin');
admin.initializeApp({  
    credential: admin.credential.cert("XXXXXXXX.json"),  
    storageBucket: "YYYYYYY.appspot.com",  
});
admin.firestore();
admin.storage();
admin.auth();

FrontのWebで使われるfirebase/appの場合

下記のようにuseEmulator関数を使用する必要があります。

const firebase = require("firebase/app");  
require("firebase/auth");  
require("firebase/firestore");  
require("firebase/storage");

firebase.auth().useEmulator("http://localhost:9099");
firebase.firestore().useEmulator("http://localhost:8080");
firebase.storage().useEmulator("localhost", 9199);

コメント