-
Notifications
You must be signed in to change notification settings - Fork 269
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[FR] Connect to Firebase Emulator (Auth) using custom hostname and port #772
Comments
I couldn't figure out how to label this issue, so I've labeled it for a human to triage. Hang tight. |
Hi @alinturbut, This is interesting... for Node.js I would suggest setting the env variable at runtime with |
@lahirumaramba After Java 17, it's not possible to set environment variables at runtime, unfortunately. For this reason, I haven't yet found a way to start using testcontainers a Firebase Auth Emulator. |
@lahirumaramba if I get the time this weekend, I might submit a PR (would add a variable in FirebaseOptions that would add in |
I am not familiar with Testcontainers, could you explain how you would set the emulator host and port in your code if you don't know the port on Testcontainers ahead of time? |
Testcontainers are initialised statically (or during early start of the spring boot app), therefore, when we initialize |
Thank you for the clarification! An API to set the emulator host sounds like a reasonable approach then. Happy to review any PRs if you would like to contribute to the codebase. :) You have to fork the repo and create a PR against the main branch of |
please let me know if you think this is enough: https://github.com/firebase/firebase-admin-java/pull/781/files |
Thank you @alinturbut for submitting the PR! We will review the changes and initiate the API review process internally. Please note that this can take some time. In the meantime, are you able to use a docker-compose file to inject environment variables to spawned containers used by Testcontainers? See: https://stackoverflow.com/a/69767792/1526201 # docker-compose.yml
services:
my-service:
environment:
FIREBASE_AUTH_EMULATOR_HOST: ${FIREBASE_AUTH_EMULATOR_HOST} new DockerComposeContainer<>(new File("../docker-compose.yml"))
.withEnv(Map.of("FIREBASE_AUTH_EMULATOR_HOST", "localhost:9092"))
.withLocalCompose(true)
.start(); |
@lahirumaramba thanks for getting back. I have tried this approach which works locally, but haven't managed to do it in the CI/CD pipelines (but haven't invested too much time on that approach, anyway) as docker compose was started but it couldn't connect to localhost. |
@lahirumaramba any news? |
Hey everyone, any news on this? |
Is your feature request related to a problem? Please describe.
I am trying to setup a testing phase that would run tests on the Emulator by connecting to it. The Emulator is prepared using TestContainers which don't open specific ports, but rather random. Because of this I cannot use the environment variable specified as that blocks me into selecting a hostname and port.
Describe the solution you'd like
Make the hostname and port dynamic when initialising FirebaseAuth / FirebaseApp.
Describe alternatives you've considered
Additional context
Expected usage
For example, Firestore has this enabled using
FirestoreOptions.newBuilder().setEmulatorHost()
The text was updated successfully, but these errors were encountered: