Batch relies on Apple (APNS: Apple Push Notification Service) and Google (FCM: Firebase Cloud Messaging) push notifications services to send notifications to iOS and Android users.
Firebase Cloud Messaging (FCM) is not the same thing as Firebase, though their name is quite similar:
- Firebase Cloud Messaging is the native push service of Android.
- Firebase is a tool developed by Google that includes a push notification feature. Firebase relies on the native push service of iOS (APNS) and Android (FCM).
In short, just like Batch, Firebase is a push provider. Batch cannot be "compatible" with Firebase as it is not a push service.
Understanding how Firebase works on iOS
Here is how Batch works on iOS :
Batch SDK collects the native push token from the app and sends it to Batch servers. Batch then uses that token to send a push notification to that user.
Firebase works slightly differenlty:
Just like Batch, Firebase SDK collects a native iOS token and sends it to Firebase's servers. Instead of using exclusively Apple's native token (e.g. 62edae8142a254540d90d6c7184958d0fb56451e23c82ad03456b7ae894a46ce), Firebase generates a custom token on top of iOS' native token (e.g. fhMo-N1Il90:APA91bGkRG5tZdJ1i2GzhuAqtY5B4TxS_2xbVxiytrtyCBkM51rge9GtTDO0Z6BHQFw_2sZ0tuRYxfwtE6NWwJFgGo_6J_lXN3exy3WZkPX8kw9zamnpjz5DTsNkwF6Tppqtv8uGNLkj). These custom tokens have the same format than Android tokens.
Firebase doesn't exposes the native token. This is a major issue for clients who want to switch to another push provider because they cannot export the real token of their iOS users.
When you are sending a push notification from Firebase, Firebase selects the list of custom tokens matching your targeting then sends the native iOS tokens to APNS to deliver the push:
Migrating from Firebase
On iOS, our clients usually don't manage to export their native iOS tokens from Firebase. This means you will need to go for a staged migration where Batch and Firebase are both integrated in your app.
Batch will recollect all your native tokens progressively.
Firebase doesn't generate a custom token for Android. You can technically export your token base and ask Batch to import it.
On Android, a component of the SDK of your push provider (the receiver) is in charge of receiving and displaying the push notifications. Every "receiver" expects data (e.g. title, body, image, etc) in a custom format.
Batch can "mimic" the data format expected by the receivers of other push providers to send notifications to imported tokens.
Unfortunately, we cannot mimic the data format expected by Firebase's receiver. Firebase's receiver is expecting to receive the data from a specific type of push ("notification" type) while most of the other providers are using the "data" type.
You will also need to collect all your push tokens, and opt for a staged migration.