v6.4.0
Messaging focused release with features, bug fixes and documentation updates.
Features
iOS: added aPodfileoption to allow using React Native Firebase packages as static frameworks (#3253) (#530f8bb)- see Allow iOS Static Frameworks to learn more. This option will default to true in the next major release.
Messaging
- added support for
onNotificationOpenedApp&getInitialNotificationAPIs.- these can be used to detect if a user opened the app via pressing a notification. (
#d66a611)
- these can be used to detect if a user opened the app via pressing a notification. (
- the
RemoteMessageevent (e.g. viaonMessage) now includes a notification payload (if present). (#d66a611) setBackgroundMessageHandlernow supported on iOS. (#d66a611)- the iOS permissions API has been upgraded to now support custom permissions.
- the permission API selects sensible defaults, however; allows you to fully customize them if required.
- provisional permissions are now disabled by default (previously, it was enabled by default for iOS 12+ devices). (
#d66a611)
- the
requestPermission&hasPermissionAPIs now returns the current authorization status as an enum, rather than a boolean value.- see
AuthorizationStatusreference documentation for available enum members
- see
Bug Fixes
iOS: updatein-app-messagingdependency to latest package name in iOSInAppMessaging(#166692d)
Analytics
- logging event parameters can be objects and arrays (
#2876) (#eebfb04) - update
logEventtypes (#65ec7eb)
Authentication
user.metadata.lastSignInTime&user.metadata.creationTimenow correctly return an ISO date string (#2555) (#8adef65)
Dynamic Links
- switch
ShortLinkTypeinterface to an enum (#870d0a1) - fix links options not correctly applied in iOS (
#54bc6f8) - fix missing return statement causing bug in iOS (
#3315) (#1661f6e)
Firestore
- improve Firestore query validation;
wherefield parameter cannot matchorderByparameter (#6311dc8)- field path cannot be used with a
orderByparameter (#ea19622)
Functions
- correctly throw an
UNAVAILABLEerror code on network IO errors for Android to match iOS (#3310) (#7351147)
Messaging
onMessagenow works correctly fordata-only,notification-only&data-notificationmessages. Previously it only worked fordata-onlymessagessetBackgroundMessageHandlernow works when the app fully quit or backgrounded, fordata-only,notification-only&data-notificationmessages. Previously, when the app was fully quit, events were not being handled- for iOS this requires
content-availableto be set
- for iOS this requires
- add better handling for messages in cases where no user handler has been set
Android: ensure a default notification color is always present when user does not set oneiOS: callingregisterDeviceForRemoteMessages/registerForRemoteNotificationswas incorrectly causing permissions to be requested before explicitly requesting them via the messaging APIiOS: registering the device was not being called if it was already registered internally.- Devices should always register with
registerDeviceForRemoteMessages, as per Apple guidelines, regardless of current registration status. - Make sure you always call
registerDeviceForRemoteMessagesduring your app initialization on iOS
- Devices should always register with
iOS: in cases where requesting an FCM with the defaultscope&authorizedEntity, the underlying code now uses the recommendedinstanceIDWithHandlervstokenWithAuthorizedEntity.- This fixes an issue where FCM would throw a
"The operation couldn’t be completed"error (#2657)
- This fixes an issue where FCM would throw a
iOS: direct FCM connection is now fixed.- When the app was in the foreground,
data-onlymessages were not coming through, they are now.
- When the app was in the foreground,
iOS: when running debug build, the APNs token will be registered with FCM as a"sandbox"key typeiOS: the original APNs swizzling we implemented was not functioning correctly withapplication:didReceiveRemoteNotification:fetchCompletionHandler:.- We added additional logic whereby this is executed in all scenarios (foreground/background/quit) and replaces a deprecated Apple API.
- This fixes issues with
data-onlymessages not being handled by the device
iOS: any customFIRMessagingDelegatemethods you add to yourAppDelegate.mwill now also be called internally by React Native Firebase messaging.
Storage
- fixed a bug that occurred when parsing encoded URLs (
#2753) (#8e99b9c) - storage tasks now correctly have a
snapshotproperty - to match the Web SDK putmethod now correctly returns a thenableTaskinstance instead of a promise (#ea19622)
Deprecations
Messaging
registerForRemoteNotificationshas been deprecated in favor ofregisterDeviceForRemoteMessages.- It will be removed in a following major version. Underlying functionality has not changed - renamed to avoid confusion with messages vs notifications. (
#d66a611)
- It will be removed in a following major version. Underlying functionality has not changed - renamed to avoid confusion with messages vs notifications. (
isRegisteredForRemoteNotificationshas been deprecated in favor ofisDeviceRegisteredForRemoteMessages.- It will be removed in a following major version. Underlying functionality has not changed - renamed to avoid confusion with messages vs notifications. (
#d66a611)
- It will be removed in a following major version. Underlying functionality has not changed - renamed to avoid confusion with messages vs notifications. (
unregisterForRemoteNotificationshas been deprecated in favor ofunregisterDeviceForRemoteMessages.- It will be removed in a following major version. Underlying functionality has not changed - renamed to avoid confusion with messages vs notifications. (
#d66a611)
- It will be removed in a following major version. Underlying functionality has not changed - renamed to avoid confusion with messages vs notifications. (
