firebase / firebase-admin-java

Firebase Admin Java SDK
https://firebase.google.com/docs/admin/setup
Apache License 2.0
543 stars 269 forks source link

Parse GOOGLE_APPLICATION_CREDENTIALS as JSON if it begins with '{' #916

Open imherrera opened 8 months ago

imherrera commented 8 months ago

Is your feature request related to a problem? Please describe. I do not want to commit my credentials file to github, and when running my app inside another enviroment such as Heroku, i run into the trouble because even though i can specify ENV variables i must provide a file path for GOOGLE_APPLICATION_CREDENTIALS, which is inconvenient because im using git to deploy to heroku

Describe the solution you'd like Parse GOOGLE_APPLICATION_CREDENTIALS as JSON if it begins with '{', otherwise assume is a file path.

Describe alternatives you've considered Adding additional code that reads an env var which contains the credential json, this is inconvenient because i will need to copy and paste this code for all my projects that use firebase admin

        fun createApp(): FirebaseApp {
            val credentials = System.getenv("FIREBASE_CONFIG")
                .byteInputStream()
                .use { stream -> ServiceAccountCredentials.fromStream(stream) }
            val config = FirebaseOptions.builder()
                .setCredentials(credentials)
                .build()
            return FirebaseApp.initializeApp(config)
        }
google-oss-bot commented 8 months ago

I couldn't figure out how to label this issue, so I've labeled it for a human to triage. Hang tight.