FCM Setup

Pulsate delivers push notifications through Firebase Cloud Messaging (FCM). This page connects your Firebase project to Pulsate.

Step 1 — Create (or open) your Firebase project

Go to the Firebase Console and create a project — or open the one your app already uses.

Step 2 — Register your Android app

In the Firebase project, add an Android app using the package name from your AndroidManifest.xml. Download the generated google-services.json and place it in your app module root (app/google-services.json), and apply the com.google.gms.google-services Gradle plugin if you haven't already.

Step 3 — Give Pulsate your FCM credentials

Pulsate's servers need permission to send messages through your Firebase project. FCM authorizes this with a service account key:

  1. In the Firebase Console open Project Settings → Service accounts.
  2. Click Generate new private key — this downloads a service-account JSON file.
  3. In the Pulsate CMS, open your app's push settings (Settings → App Settings) and upload the JSON file.

🔒

The service-account JSON is a credential — share it only through the CMS upload, never by email or chat.

Step 4 — Forward FCM callbacks (only if you have your own FirebaseMessagingService)

The SDK ships its own FirebaseMessagingService, so if your app doesn't implement one, there is nothing to do — Pulsate pushes just work.

If your app does implement its own FirebaseMessagingService (e.g. for other push providers), forward both callbacks to Pulsate:

class MyFirebaseMessagingService : FirebaseMessagingService() {

    override fun onMessageReceived(remoteMessage: RemoteMessage) {
        val pulsateManager = PulsateFactory.getInstance()
        if (pulsateManager.onMessageReceived(remoteMessage)) {
            // It was a Pulsate push — Pulsate handled it.
            return
        }
        // Not a Pulsate push — handle it yourself.
        handleMyOwnMessage(remoteMessage)
    }

    override fun onNewToken(token: String) {
        super.onNewToken(token)
        PulsateFactory.getInstance().onNewToken(token)
    }
}

onMessageReceived returns true when the payload came from Pulsate and was handled, false otherwise.

Step 5 — Set your notification icon

Notifications use a small status-bar icon that must live in your app. See Notification Icons — without one, Android shows a default bell icon.

Verify

  1. Build and run the app on a device, start a session.
  2. Send a test campaign with a push from the Pulsate CMS.
  3. The push should arrive within seconds; tapping it should open your app.

If pushes don't arrive, check that notification permission is granted (Notification Permission) and that the device appears in the Pulsate CMS user list.