# Firebase: credentials

You connect Firebase to your organization with a service account JSON or through OAuth so that the platform can create Firebase projects for push notifications and write the configuration into your apps.

> Source: https://www.application-platform.com/en/docs/firebase-credentials/

**Google / Firebase** under **Connections** enables push notifications for apps: the platform creates a Firebase project in your Google Cloud account when needed and writes the configuration into the generated project files.

A **service account JSON** is the key of a technical account in Google Cloud that may create projects, and it is the recommended path. **Connect with Firebase** instead authorizes your Google account through OAuth and carries a **Beta** badge until Google has approved the platform app.

## Creating the service account in Google Cloud

The service account needs permissions at the folder and billing account level.

1. Open the [Google Cloud Console](https://console.cloud.google.com/) or the Firebase Console and select your organization.
2. Create a service account with at least these permissions:
   - **Project Creator** on the GCP folder for the new projects (`resourcemanager.projects.create`)
   - **Billing Account User** on the billing account (`billing.resourceAssociations.create`)
   - the right to enable services (`firebase.projects.update`, `serviceusage.services.enable`)
   - read access to list folders and billing accounts
3. Create a JSON key and download the file.

## Storing the JSON in the platform

1. Under **Connections → Google / Firebase**, choose **Service account JSON**.
2. Enter a **Name** and **Slug**.
3. Paste the contents of the file into the **Service account JSON** field; a **Firebase** or **GCP project ID** is optional.
4. Click **Verify**; the platform names any missing permissions, which you add in Google Cloud.

Only administrators should see the key; if you suspect it has leaked, create a new one and update the entry under **Connections**.

## Enabling Firebase on an app

1. Enable Firebase for the app under **Features** and select the connection.
2. Choose **Folder** and **Billing account**. If the lists stay empty, check the service account's read permissions.
3. Save. The platform creates the Firebase project and stores its project IDs on the app; if one already exists there or on the connection, no new project is created.

Afterwards the platform writes the Firebase configuration and push settings into the generated project files and carries over existing app configs for web, iOS, and Android.

## OAuth with your Google account (Beta)

1. Under **Connections → Google / Firebase**, choose **Connect with Firebase**.
2. Authorize your Google account and select the Firebase project.
3. The platform stores the connection and, where possible, adds app configs and a service account.

{{< docnote type="warning" >}}
If Google's consent screen reports the app as unverified, stay with the service account JSON until it is approved.
{{< /docnote >}}

