Skip to content

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

Section titled “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.

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

Section titled “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.

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

Section titled “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.

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

  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.