How to prevent Firebase from intercepting Batch push notifications?

Firebase may intercept notifications on iOS. This can cause issues with Batch's handling of notifications (landings, deeplinks, and more).

On iOS, Firebase may intercept the content of push notifications sent from Batch. As a result, Batch SDK may no longer be able to:

  1. Detect push opens, resulting in broken campaigns statistics (see more here)

  2. Handle deeplinks. The Batch SDK never receives the deeplink and cannot pass it to the app to direct your users to the right page.

  3. Display Mobile Landings. The information that the Batch SDK needs to display the In-App landing page is located in the payload of the notification intercepted by Firebase.

Detecting the issue

If you are facing one of these issues, open your app and look at the logs. The Batch SDK will print an alert:

Fixing the issue

Here are the two steps you need to take to fix the issue:

  1. Switch to a manual integration, as described here: Manual Integration

  2. Then, make sure you intercept the payload of Batch notifications as described here: Intercepting Notifications

Here is how you can test your integration:

  1. You should no longer see the alert in the logs of your app

  2. Send a test push notification to your device and open it (see more here). You should see the following line: Push - App was opened from a Batch push.

  3. Then, try sending a test notification to your device with a deeplink. Go to the dashboard → Campaigns → Click on "New Campaign" → "Push message" → Head to the message edition part, edit the text of the notification, add a deeplink to the campaign → Click on "Send test", after selecting your device.

  4. Send a preview of an In-App message to your device. Go to the dashboard → Settings → Themes → Select a theme or create one and click the "preview button". The In-App message should be displayed as soon as you click the notification.

In case the In-App message is not displayed correctly or is dismissed by the splash screen of your app, make sure you implement the "do not disturb" mode (see more here). This will allow you to pause In-App messages until the app can display them correctly.

Last updated

Was this helpful?