[@react-native-firebase/installations] Auto-register APNs on iOS when using FID for messaging

Author: FabienBounoirCreated Jul 22, 2026Updated Jul 23, 2026
Labelsplatform: iosplugin: messagingWorkflow: Needs Reviewtype: enhancementNeeds Attentionplugin: installations

When targeting devices using Firebase Installation IDs (FIDs) obtained via @react-native-firebase/installations (as recommended in recent Firebase messaging documentation), sending push notifications to iOS devices fails from the backend with a NotRegistered (UNREGISTERED 404) error.

This happens because @react-native-firebase/installations operates independently from APNs. Unlike messaging().getToken()—which automatically handles or triggers APNs device registration under the hood—fetching an FID via installations().getId() does not register the device for remote notifications with Apple.

Because of this, Firebase's backend does not have an APNs token mapped to the FID on iOS, causing notifications to be rejected with NotRegistered.


When FirebaseMessagingInstallationIdEnabled is set to true (or when both @react-native-firebase/messaging and @react-native-firebase/installations are included in the project), the library should either:

  1. Automatically trigger APNs registration (registerDeviceForRemoteMessages()) under the hood when fetching/syncing the FID on iOS.
  2. Or provide an explicit helper method or configuration option within the SDK to automatically bind APNs registration to the FID, ensuring parity with how messaging().getToken() works.

Currently, the workaround on iOS is to manually force APNs registration before utilizing the FID:

javascript
import messaging from '@react-native-firebase/messaging';
import installations from '@react-native-firebase/installations';

if (Platform.OS === 'ios') {
  await messaging().registerDeviceForRemoteMessages();
}

const fid = await installations().getId();

Source: invertase/react-native-firebase