firebase / firebase/firebase-admin-java

Application Default Credentials take precedence over EmulatorCredentials

オープン
#634 コメント 2 件 リアクション 4 件 担当者 1 名 @yuchenshi が担当を希望しています GitHub で見る
api: firestore type: bug
主要言語
Java
スター
620
フォーク
305
平均マージ
3時間 23分
マージ済み PR(30日)
1

説明

### Environment
* Operating System version: Fedora 35
* Firebase SDK version: Firebase Admin Java
* Library version: 8.1.0
* Firebase Product: firestore

### Problem
If I have an Application Default Credentials File in `~/.config/gcloud/` than I get a warning about using user credentials for a server application while running my test against the emulator.
I do not expect to get this message as I am initializing the SDK with credentials provided and Javadoc for the Firestore Builder states that Application Defaults are only taken if Credentials are null.

#### Steps to reproduce:
Initialize the SDK in a Junit test like stated below.

Starting the test, the SDK will log the following message if there are Application Default Credentials:
`"WARN com.google.auth.oauth2.DefaultCredentialsProvider - Your application has authenticated using end user credentials from Google Cloud SDK. We recommend that most server applications use service accounts instead. If your application continues to use end user credentials from Cloud SDK, you might receive a "quota exceeded" or "API not enabled" error. For more information about service accounts, see https://cloud.google.com/docs/authentication/."`

Though, the test itself seems to run against the emulator just fine. Once I remove the Credentials by moving the credentials file, the test runs without warning.

#### Relevant Code:
```Kotlin
private val firestoreEmulator: Firestore by lazy {
FirestoreOptions.getDefaultInstance().toBuilder()
.setEmulatorHost(emulator.emulatorEndpoint)
.setCredentials(FirestoreOptions.EmulatorCredentials())
.setProjectId("demo-project")
.build().service
}
```

コントリビューションガイド

コントリビューションガイドを開く

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。