Migrate from Firebase Cloud Messaging to Bird
Move message orchestration and customer targeting into Bird while retaining FCM as the Android delivery transport. Plan the receiving app update as well as the server change: notification payloads and foreground/background handling may differ.
Map the integration
| Existing integration | Bird equivalent or migration work |
|---|---|
| FCM HTTP v1 project endpoint and Google OAuth credential | Bird Channels endpoint with workspace/channel IDs and an AccessKey; configure the Firebase gateway credential on the Bird channel. |
| message.token | Current token becomes identifierValue: "firebase:{token}", with identifierKey: "push-{channelId}". Preserve the whole token. |
| message.notification.title and .body | Direct Push body uses body.type: "list", body.list.title and body.list.text. |
| Custom data, Android/APNs overrides and click handling | Rebuild supported content and actions with a Bird Push template and its SDK handling; do not copy arbitrary FCM fields into the Channels body. |
| Topics, conditions and application audiences | Recreate intended targeting using Bird contacts, lists/segments and current channel registrations; a topic string is not a device token. |
| Your customer/token table | Reconcile Bird contact identity, installation lifecycle and campaign preferences while keeping your application customer ID stable. |
See the current FCM HTTP v1 send contract and Bird programmable Push contract. Firebase registration tokens identify destinations, not authenticated customers; apply token lifecycle guidance.
Build and test the receiving path
- Configure the Bird application and Push channel with credentials for the same Android/Firebase environment. Integrate the Bird Android SDK, application key and messaging service using platform setup.
- If your app already has a Firebase service, extend Bird's service and preserve its callbacks. Bird's FCM integration can send notification content as data for its SDK to process. A handler that expects only FCM's notification object needs review.
- Register the current installation, associate the authenticated customer and preserve their notification preference. Send one controlled message using the runnable first-send example, changing the destination prefix from web: to firebase: and supplying the current FCM token. Keep the channel key and list body.
- Test foreground, background, cold start, denied permission, refreshed token, logout and account switch. Verify the same authorized application record opens from the old and new paths.
FCM distinguishes notification and data messages, with different foreground/background handling. Use Google's message-type documentation when comparing old behavior with the Bird SDK path. Match actual device results instead of expecting a Firebase console test to prove the Bird integration.
For iOS, inspect the destination you currently store: an FCM registration token is not an APNs token. Bird's documented native iOS path uses the Swift SDK, APNs configuration and an apns: destination. For web, move to the Bird Web SDK's subscription and service worker; a raw Firebase Web Messaging token is not the Bird Web Push subscription token. Reconcile those platforms separately.
Switch traffic and reconcile
Assign each eligible installation or customer cohort one sending owner. Gate Bird traffic on the receiving app version and verified registration; keep the prior sender for installations still on the previous integration. This is your rollout routing, not a change to the customer's permission.
Record application event ID, selected sender, app version and provider message ID. Stop the previous path for a migrated event before enabling Bird, so both systems cannot notify for the same occurrence. An HTTP timeout stays unknown until reconciled. Do not translate a local business-event ID into an assumed Bird idempotency guarantee.
Compare registration coverage, permission, send failures, presentation and authorized destination behavior for a bounded cohort. Retain the prior configuration for rollback, but route subsequent eligible events to only one sender. Reverting the sender does not reverse notifications already delivered or prove an uncertain attempt failed. Retire obsolete tokens and SDK code after the remaining app versions and rollback window have been handled.
References and next steps
- Firebase token management and notification/data handling.
- Bird setup, identity lifecycle, deep links and troubleshooting.
- Compare Bird and FCM or all Push resources.
Ressources associées
Poursuivez avec la documentation, les guides et les exemples sur ce sujet. Les ressources sont en anglais.