firebase / firebase/firebase-android-sdk

firebaseAppDistribution doesn't supply quota project when using ADC with user account

Open
#6,730 3 comments 2 reactions 0 assignees View on GitHub
api: appdistribution type: feature request
Dominant language
Java
Stars
2.6k
Forks
710
Avg merge
2d 23h
Merged PRs (30d)
34

Description

### Describe your environment

* Android Studio version: 2024.2.2 Patch 2
* Firebase Component: AppDistribution (gradle plugin)
* Component version: `id 'com.google.firebase.appdistribution' version '5.1.1' apply false`

### Describe the problem

- gradle plugin fails to determine or communicate the quota project
- appdistribution api rejects the request with 403

#### Steps to reproduce:

```
# ensure firebase cli is not logged in because plugin will use those creds if they exist (you'll be unable to reproduce from a machine with (old-style) firebase cli login creds in place!)
rm ~/.config/configstore/firebase-tools.json

# ensure logged into ADC
gcloud auth application-default login

# ensure quota project set
gcloud auth application-default set-quota-project PROJ

# gradle build
env GOOGLE_APPLICATION_CREDENTIALS=/Users//.config/gcloud/application_default_credentials.json ./gradlew --console plain --no-daemon assembleFullDebug uploadCrashlyticsSymbolFileFullDebug appDistributionUploadFullDebug --debug --stacktrace
```

There are several successful network transactions in the logs and then this (looks like while trying to see operation status)

```
2025-02-27T04:49:45.323-0700 [INFO] [com.google.api.client.http.HttpTransport] -------------- REQUEST --------------
GET https://firebaseappdistribution.googleapis.com/v1/projects/PROJECT_NUMBER/apps/1:PROJECT_NUMBER:android:/releases/-/operations/
Accept-Encoding: gzip
Authorization:
User-Agent: Firebase App Distro Client/5.1.1
x-client-version: gradle/5.1.1

2025-02-27T04:49:45.367-0700 [INFO] [com.google.api.client.http.HttpTransport] Total: 1,153 bytes
2025-02-27T04:49:45.367-0700 [INFO] [com.google.api.client.http.HttpTransport] {
"error": {
"code": 403,
"message": "Your application is authenticating by using local Application Default Credentials. The firebaseappdistribution.googleapis.com API requires a quota project, which is not set by default. To learn how to set your quota project, see https://cloud.google.com/docs/authentication/adc-troubleshooting/user-creds .",
"status": "PERMISSION_DENIED",
"details": [
{
"@type": "type.googleapis.com/google.rpc.ErrorInfo",
"reason": "SERVICE_DISABLED",
"domain": "googleapis.com",
"metadata": {
"consumer": "projects/764086051850",
"service": "firebaseappdistribution.googleapis.com"
}
},
{
"@type": "type.googleapis.com/google.rpc.LocalizedMessage",
"locale": "en-US",
"message": "Your application is authenticating by using local Application Default Credentials. The firebaseappdistribution.googleapis.com API requires a quota project, which is not set by default. To learn how to set your quota project, see https://cloud.google.com/docs/authentication/adc-troubleshooting/user-creds ."
}
]
}
}
```

#### Relevant Code:

- gradle deploy as above works if I log into firebase ci with legacy FIREBASE_TOKEN
- same deploy works with firebase cli -- with firebase cli's implementation of ADC

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.