Connect Firebase (FCM)

Connect Firebase (FCM)

PushPilot uses Firebase Cloud Messaging (FCM) to deliver notifications. This guide walks you through creating a Firebase project, generating the service account key, and linking it to PushPilot.

How it works

PushPilot communicates with FCM via the Firebase Admin SDK using a service account. The service account JSON you download from the Google Cloud Console is encrypted and stored securely. PushPilot then uses it to send topic-based notifications to all subscribed devices.

  1. 1

    Create a Firebase project

    Go to the Firebase Console and click Add project. Follow the wizard to name your project and optionally enable Google Analytics.

    If you already have a Firebase project you use for your app, skip this step and use the existing project.

  2. 2

    Register your app in Firebase

    Inside your Firebase project, click Add app and select the platform (Android, iOS, or Flutter). Follow the setup wizard to register your app's bundle ID or package name.

    Download the google-services.json (Android) or GoogleService-Info.plist (iOS) file and add it to your mobile project. This is used by the Firebase SDK in your app — not by PushPilot.

  3. 3

    Generate a service account key

    In the Firebase Console, go to Project settings (gear icon) → Service accounts tab → Generate new private key.

    A JSON file will be downloaded. This is your service account key — keep it safe and do not commit it to version control.

    The file looks like this:

    firebase-service-account.json
    {
      "type": "service_account",
      "project_id": "your-firebase-project-id",
      "private_key_id": "abc123...",
      "private_key": "-----BEGIN RSA PRIVATE KEY-----\n...\n-----END RSA PRIVATE KEY-----\n",
      "client_email": "firebase-adminsdk-xxxxx@your-project.iam.gserviceaccount.com",
      "client_id": "123456789",
      "auth_uri": "https://accounts.google.com/o/oauth2/auth",
      "token_uri": "https://oauth2.googleapis.com/token",
      "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
      "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/..."
    }

    Keep this file private

    The service account key grants admin access to your Firebase project. Never share it publicly, commit it to git, or include it in your mobile app binary. PushPilot encrypts it at rest using AES-256.
  4. 4

    Add the project in PushPilot

    1. Open the PushPilot dashboard and go to Integrations → Firebase Projects.
    2. Click Add Firebase Project.
    3. Upload or paste the contents of your firebase-service-account.json file.
    4. PushPilot will validate the credentials by making a test API call to Firebase.
    5. Once validated, the project appears in your integrations list with a green status badge.
  5. 5

    Send a test notification

    After adding the project, click Test next to the project name. PushPilot sends a test message to the all topic. If you have a device with the SDK installed and subscribed to that topic, it will receive the test notification.

    No devices yet?

    Complete the Mobile SDK Integration first so your app subscribes devices to the all topic before running the test.

Sync Firebase projects from Google

If you signed in with Google, PushPilot can list all Firebase projects associated with your Google account. Go to Integrations → Firebase Projects → Sync from Google. This discovers your existing projects and creates draft entries — you still need to upload the service account JSON for each project you want to use.

Rotating or updating credentials

If you need to rotate your service account key, generate a new key in the Firebase Console and then go to Integrations → Firebase Projects → [your project] → Update Credentials to upload the replacement JSON.