firebase-admin-node icon indicating copy to clipboard operation
firebase-admin-node copied to clipboard

[FR] Connect admin-sdk inside functions emulator to multiple different Firebase Projects Emulator instances (Auth,Firestore,..)

Open henkaumio opened this issue 2 years ago • 1 comments

  • I have multiple Firebase Projects
  • One should be a central "Auth-Provider-Project" which creates custom auth tokens in Firebase Functions for multiple different Firebase Projects

Usually i can initialize multiple different admin apps like so:

const authProviderProject = admin.initializeApp(
  { credential: admin.credential.cert(authProviderProjectCred), },
  "appOne"
);

const appTwo = admin.initializeApp(
  { credential: admin.credential.cert(appTwoCred), },
  "appTwo"
);

In this way my locally run admin-sdk (inside the functions emulator) connects to the remote Firebase projects. The problem now occurs when I also want to emulate Auth, and Firestores locally in the dev/emulator environment. I have to run another set of emulators for each project (next to the authProviderProject which owns the functions using the admin-sdk), but now i can't link my Auth Project Emulators and therefore cant initialize the admin-sdk-apps for my other Projects. I believe this might be because my functions emulator sets this ENV_VAR: export FIREBASE_AUTH_EMULATOR_HOST="127.0.0.1:9099" So i guess i would need a way to point different app initializations to different emulator ports?

I have also tried to initialize the app with the 'projectId' field, but this didn't connect to the correct emulator running on a different port than stated in the FIREBASE_AUTH_EMULATOR_HOST variable.

const appTwo = admin.initializeApp(
  { credential: admin.credential.cert(appTwoCred), projectId: "firebaseProjectTwoId" },

  "appTwo"
);

like stated here

Is there a way I can connect multiple locally run emulator suites (multiple Firebase Projects) to the same locally run functions emulator?

henkaumio avatar Jun 27 '23 16:06 henkaumio

I found a few problems with this issue:

  • I couldn't figure out how to label this issue, so I've labeled it for a human to triage. Hang tight.
  • This issue does not seem to follow the issue template. Make sure you provide all the required information.

google-oss-bot avatar Jun 27 '23 16:06 google-oss-bot