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. (
 
