サーバサイドの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);
コメント