Skip to content

Commit 5e506a6

Browse files
authored
support FIREBASE_DATABASE_EMULATOR_HOST env var (#2005)
* support FIREBASE_DATABASE_EMULATOR_HOST environment variable * [AUTOMATED]: Prettier Code Styling * use one env var definition, remove extra logic * [AUTOMATED]: Prettier Code Styling * nit: remove blank line * minor version bump and environment variable guard * [AUTOMATED]: Prettier Code Styling * fix unbound variable reference * don't export new env variable * [AUTOMATED]: Prettier Code Styling * revert minor version bump change * add cross-referencing comment, prefer env var over app options
1 parent 05fd7fc commit 5e506a6

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

packages/database/src/core/RepoManager.ts

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,16 @@ import { RepoInfo } from './RepoInfo';
2828
/** @const {string} */
2929
const DATABASE_URL_OPTION = 'databaseURL';
3030

31+
/**
32+
* This variable is also defined in the firebase node.js admin SDK. Before
33+
* modifying this definition, consult the definition in:
34+
*
35+
* https://github.com/firebase/firebase-admin-node
36+
*
37+
* and make sure the two are consistent.
38+
*/
39+
const FIREBASE_DATABASE_EMULATOR_HOST_VAR = 'FIREBASE_DATABASE_EMULATOR_HOST';
40+
3141
let _staticInstance: RepoManager;
3242

3343
/**
@@ -80,7 +90,12 @@ export class RepoManager {
8090
* @return {!Database}
8191
*/
8292
databaseFromApp(app: FirebaseApp, url?: string): Database {
83-
const dbUrl: string = url || app.options[DATABASE_URL_OPTION];
93+
let dbEmulatorHost = process.env[FIREBASE_DATABASE_EMULATOR_HOST_VAR];
94+
if (dbEmulatorHost) {
95+
dbEmulatorHost = `http://${dbEmulatorHost}`;
96+
}
97+
const dbUrl: string =
98+
url || dbEmulatorHost || app.options[DATABASE_URL_OPTION];
8499
if (dbUrl === undefined) {
85100
fatal(
86101
"Can't determine Firebase Database URL. Be sure to include " +

0 commit comments

Comments
 (0)