From 5ce69cb3f2e642d553863dce410830a873640e58 Mon Sep 17 00:00:00 2001 From: Lahiru Maramba Date: Fri, 13 Jan 2023 19:16:36 -0500 Subject: [PATCH 1/2] fix: Set emulator credentials on rest fallback --- dev/src/index.ts | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/dev/src/index.ts b/dev/src/index.ts index 854ef7477..a433a682e 100644 --- a/dev/src/index.ts +++ b/dev/src/index.ts @@ -597,6 +597,23 @@ export class Firestore implements firestore.Firestore { // also set the `protocol` option for GAX fallback to force http if (useFallback) { settings.protocol = 'http'; + + // If the emulator mode is enabled, we set emulator credentials + // to prevent the gRPC-fallback client from trying to obtain + // service account credentials from the environment. + if (process.env.FIRESTORE_EMULATOR_HOST) { + const emulatorCredentials = { + access_token: 'owner', + }; + const emulatorClient = + // eslint-disable-next-line node/no-extraneous-require + new (require('google-auth-library').OAuth2Client)(); + emulatorClient.setCredentials(emulatorCredentials); + const emulatorAuth = new (require('google-gax').GoogleAuth)({ + authClient: emulatorClient, + }); + settings.auth = emulatorAuth; + } } client = new module.exports.v1(settings, gax); From ce8931791b010f186f662e0f0481d5ae5b488617 Mon Sep 17 00:00:00 2001 From: Lahiru Maramba Date: Wed, 18 Jan 2023 11:51:20 -0500 Subject: [PATCH 2/2] set projectId to fix emulator system tests --- dev/src/index.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/dev/src/index.ts b/dev/src/index.ts index a433a682e..4e48634d6 100644 --- a/dev/src/index.ts +++ b/dev/src/index.ts @@ -609,6 +609,8 @@ export class Firestore implements firestore.Firestore { // eslint-disable-next-line node/no-extraneous-require new (require('google-auth-library').OAuth2Client)(); emulatorClient.setCredentials(emulatorCredentials); + emulatorClient.projectId = + settings.projectId ?? process.env.GCLOUD_PROJECT; const emulatorAuth = new (require('google-gax').GoogleAuth)({ authClient: emulatorClient, });