diff --git a/src/database/database.ts b/src/database/database.ts index 355c43b33a..cee5c280fa 100644 --- a/src/database/database.ts +++ b/src/database/database.ts @@ -196,7 +196,7 @@ const RULES_URL_PATH = '.settings/rules.json'; class DatabaseRulesClient { private readonly dbUrl: string; - private readonly httpClient: AuthorizedHttpClient; + private readonly httpClient: DatabaseRulesHttpClient; constructor(app: App, dbUrl: string) { let parsedUrl = new URL(dbUrl); @@ -208,7 +208,7 @@ class DatabaseRulesClient { parsedUrl.pathname = path.join(parsedUrl.pathname, RULES_URL_PATH); this.dbUrl = parsedUrl.toString(); - this.httpClient = new AuthorizedHttpClient(app as FirebaseApp); + this.httpClient = new DatabaseRulesHttpClient(app as FirebaseApp); } /** @@ -316,6 +316,16 @@ class DatabaseRulesClient { } } +class DatabaseRulesHttpClient extends AuthorizedHttpClient { + protected getToken(): Promise { + const emulatorHost = process.env.FIREBASE_DATABASE_EMULATOR_HOST; + if (emulatorHost) { + return Promise.resolve('owner'); + } + return super.getToken(); + } +} + function extractNamespace(parsedUrl: URL): string { const ns = parsedUrl.searchParams.get('ns'); if (ns) {