{"componentChunkName":"component---src-templates-documentation-tsx","path":"/releases/v6.4.0","result":{"data":{"mdx":{"body":"var _excluded = [\"components\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/* @jsxRuntime classic */\n/* @jsx mdx */\n\nvar _frontmatter = {\n  \"title\": \"v6.4.0\",\n  \"description\": \"Messaging focused release with features, bug fixes and documentation updates.\",\n  \"date\": \"2020-04-03T00:00:00.000Z\"\n};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n    props = _objectWithoutProperties(_ref, _excluded);\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"h2\", {\n    \"id\": \"features\"\n  }, \"Features\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"iOS\"), \": added a \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"Podfile\"), \" option to allow using React Native Firebase packages as static frameworks (\", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://github.com/invertase/react-native-firebase/issues/3253\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"a\"\n  }, \"#3253\")), \") (\", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://github.com/invertase/react-native-firebase/commit/530f8bbb51f89f106854dbf1df5ec80211e2cf8b\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"a\"\n  }, \"#530f8bb\")), \")\", mdx(\"ul\", {\n    parentName: \"li\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"see \", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"/#allow-ios-static-frameworks\"\n  }, \"Allow iOS Static Frameworks\"), \" to learn more. This option will default to true in the next major release.\")))), mdx(\"h3\", {\n    \"id\": \"messaging\"\n  }, \"Messaging\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"added support for \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"onNotificationOpenedApp\"), \" & \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"getInitialNotification\"), \" APIs.\", mdx(\"ul\", {\n    parentName: \"li\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"these can be used to detect if a user opened the app via pressing a notification. (\", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://github.com/invertase/react-native-firebase/commit/d66a6118f82005087f53b86571990fc071402153\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"a\"\n  }, \"#d66a611\")), \")\"))), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"the \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"RemoteMessage\"), \" event (e.g. via \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"onMessage\"), \") now includes a notification payload (if present). (\", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://github.com/invertase/react-native-firebase/commit/d66a6118f82005087f53b86571990fc071402153\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"a\"\n  }, \"#d66a611\")), \")\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"setBackgroundMessageHandler\"), \" now supported on iOS. (\", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://github.com/invertase/react-native-firebase/commit/d66a6118f82005087f53b86571990fc071402153\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"a\"\n  }, \"#d66a611\")), \")\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"the iOS permissions API has been upgraded to now support custom permissions.\", mdx(\"ul\", {\n    parentName: \"li\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"the permission API selects sensible defaults, however; allows you to fully customize them if required.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"provisional permissions are now disabled by default (previously, it was enabled by default for iOS 12+ devices). (\", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://github.com/invertase/react-native-firebase/commit/d66a6118f82005087f53b86571990fc071402153\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"a\"\n  }, \"#d66a611\")), \")\"))), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"the \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"requestPermission\"), \" & \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"hasPermission\"), \" APIs now returns the current authorization status as an enum, rather than a boolean value.\", mdx(\"ul\", {\n    parentName: \"li\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"see \", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"/reference/messaging/authorizationstatus\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"a\"\n  }, \"AuthorizationStatus\")), \" reference documentation for available enum members\")))), mdx(\"hr\", null), mdx(\"h2\", {\n    \"id\": \"bug-fixes\"\n  }, \"Bug Fixes\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"iOS\"), \": update \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"in-app-messaging\"), \" dependency to latest package name in iOS \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"InAppMessaging\"), \" (\", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://github.com/invertase/react-native-firebase/commit/166692d68ef396f3e8664edd7feab7c80038004b\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"a\"\n  }, \"#166692d\")), \")\")), mdx(\"h3\", {\n    \"id\": \"analytics\"\n  }, \"Analytics\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"logging event parameters can be objects and arrays (\", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://github.com/invertase/react-native-firebase/issues/2876\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"a\"\n  }, \"#2876\")), \") (\", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://github.com/invertase/react-native-firebase/commit/eebfb04a7c0a856a9d5d311ae99138df9ab90c3b\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"a\"\n  }, \"#eebfb04\")), \")\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"update \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"logEvent\"), \" types (\", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://github.com/invertase/react-native-firebase/commit/65ec7eb431712f8c4d3cf96c24489e6a13ef4e13\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"a\"\n  }, \"#65ec7eb\")), \")\")), mdx(\"h3\", {\n    \"id\": \"authentication\"\n  }, \"Authentication\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"user.metadata.lastSignInTime\"), \" & \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"user.metadata.creationTime\"), \" now correctly return an ISO date string (\", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://github.com/invertase/react-native-firebase/issues/2555\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"a\"\n  }, \"#2555\")), \") (\", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://github.com/invertase/react-native-firebase/commit/8adef653faa008e0146374f99f5ba1af902749bf\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"a\"\n  }, \"#8adef65\")), \")\")), mdx(\"h3\", {\n    \"id\": \"dynamic-links\"\n  }, \"Dynamic Links\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"switch \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"ShortLinkType\"), \" interface to an enum (\", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://github.com/invertase/react-native-firebase/commit/870d0a198692c65d2857765d1b216738ec74856f\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"a\"\n  }, \"#870d0a1\")), \")\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"fix links options not correctly applied in iOS (\", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://github.com/invertase/react-native-firebase/commit/54bc6f8403b12a8cfaf0b862d13310ef28076d06\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"a\"\n  }, \"#54bc6f8\")), \")\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"fix missing return statement causing bug in iOS (\", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://github.com/invertase/react-native-firebase/issues/3315\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"a\"\n  }, \"#3315\")), \") (\", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://github.com/invertase/react-native-firebase/commit/1661f6e084c47ed835cc4539c654286964a6d9a8\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"a\"\n  }, \"#1661f6e\")), \")\")), mdx(\"h3\", {\n    \"id\": \"firestore\"\n  }, \"Firestore\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"improve Firestore query validation;\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"where\"), \" field parameter cannot match \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"orderBy\"), \" parameter (\", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://github.com/invertase/react-native-firebase/commit/6311dc8f68e6cf0605d2f306885d2fbc0ef779d6\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"a\"\n  }, \"#6311dc8\")), \")\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"field path cannot be used with a \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"orderBy\"), \" parameter (\", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://github.com/invertase/react-native-firebase/commit/b90a736fc8f9a1b25239bb68e5a62de711b673c7\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"a\"\n  }, \"#ea19622\")), \")\")), mdx(\"h3\", {\n    \"id\": \"functions\"\n  }, \"Functions\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"correctly throw an \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"UNAVAILABLE\"), \" error code on network IO errors for Android to match iOS (\", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://github.com/invertase/react-native-firebase/issues/3310\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"a\"\n  }, \"#3310\")), \") (\", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://github.com/invertase/react-native-firebase/commit/73511472bd7690158f3d9924d5f4d8c0cad69910\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"a\"\n  }, \"#7351147\")), \")\")), mdx(\"h3\", {\n    \"id\": \"messaging-1\"\n  }, \"Messaging\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"onMessage\"), \" now works correctly for \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"data-only\"), \", \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"notification-only\"), \" & \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"data-notification\"), \" messages. Previously it only worked for \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"data-only\"), \" messages\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"setBackgroundMessageHandler\"), \" now works when the app fully quit or backgrounded, for \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"data-only\"), \", \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"notification-only\"), \" & \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"data-notification\"), \" messages. Previously, when the app was fully quit, events were not being handled\", mdx(\"ul\", {\n    parentName: \"li\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"for iOS this requires \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"content-available\"), \" to be set\"))), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"add better handling for messages in cases where no user handler has been set\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"Android\"), \": ensure a default notification color is always present when user does not set one\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"iOS\"), \": calling \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"registerDeviceForRemoteMessages\"), \"/\", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"registerForRemoteNotifications\"), \" was incorrectly causing permissions to be requested before explicitly requesting them via the messaging API\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"iOS\"), \": registering the device was not being called if it was already registered internally.\", mdx(\"ul\", {\n    parentName: \"li\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Devices should \", mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"always\"), \" register with \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"registerDeviceForRemoteMessages\"), \", as per Apple guidelines, regardless of current registration status.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Make sure you \", mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"always\"), \" call \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"registerDeviceForRemoteMessages\"), \" during your app initialization on iOS\"))), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"iOS\"), \": in cases where requesting an FCM with the default \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"scope\"), \" & \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"authorizedEntity\"), \", the underlying code now uses the recommended \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"instanceIDWithHandler\"), \" vs \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"tokenWithAuthorizedEntity\"), \".\", mdx(\"ul\", {\n    parentName: \"li\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"This fixes an issue where FCM would throw a \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"\\\"The operation couldn\\u2019t be completed\\\"\"), \" error (\", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://github.com/invertase/react-native-firebase/issues/2657\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"a\"\n  }, \"#2657\")), \")\"))), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"iOS\"), \": direct FCM connection is now fixed.\", mdx(\"ul\", {\n    parentName: \"li\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"When the app was in the foreground, \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"data-only\"), \" messages were not coming through, they are now.\"))), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"iOS\"), \": when running debug build, the APNs token will be registered with FCM as a \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"\\\"sandbox\\\"\"), \" key type\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"iOS\"), \": the original APNs swizzling we implemented was not functioning correctly with \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"application:didReceiveRemoteNotification:fetchCompletionHandler:\"), \".\", mdx(\"ul\", {\n    parentName: \"li\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"We added additional logic whereby this is executed in all scenarios (foreground/background/quit) and replaces a deprecated Apple API.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"This fixes issues with \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"data-only\"), \" messages not being handled by the device\"))), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"iOS\"), \": any custom \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"FIRMessagingDelegate\"), \" methods you add to your \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"AppDelegate.m\"), \" will now also be called internally by React Native Firebase messaging.\")), mdx(\"h3\", {\n    \"id\": \"storage\"\n  }, \"Storage\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"fixed a bug that occurred when parsing encoded URLs (\", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://github.com/invertase/react-native-firebase/issues/2753\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"a\"\n  }, \"#2753\")), \") (\", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://github.com/invertase/react-native-firebase/commit/8e99b9cb9093ba0cc3aadcb56127c8500ea8bf36\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"a\"\n  }, \"#8e99b9c\")), \")\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"storage tasks now correctly have a \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"snapshot\"), \" property - to match the Web SDK\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"put\"), \" method now correctly returns a thenable \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"Task\"), \" instance instead of a promise (\", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://github.com/invertase/react-native-firebase/commit/ea1962270b6c20d5b15dbaaea5c4d88a0a4ae3e2\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"a\"\n  }, \"#ea19622\")), \")\")), mdx(\"hr\", null), mdx(\"h2\", {\n    \"id\": \"deprecations\"\n  }, \"Deprecations\"), mdx(\"h3\", {\n    \"id\": \"messaging-2\"\n  }, \"Messaging\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"registerForRemoteNotifications\"), \" has been deprecated in favor of \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"registerDeviceForRemoteMessages\"), \".\", mdx(\"ul\", {\n    parentName: \"li\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"It will be removed in a following major version. Underlying functionality has not changed - renamed to avoid confusion with messages vs notifications. (\", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://github.com/invertase/react-native-firebase/commit/d66a6118f82005087f53b86571990fc071402153\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"a\"\n  }, \"#d66a611\")), \")\"))), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"isRegisteredForRemoteNotifications\"), \" has been deprecated in favor of \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"isDeviceRegisteredForRemoteMessages\"), \".\", mdx(\"ul\", {\n    parentName: \"li\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"It will be removed in a following major version. Underlying functionality has not changed - renamed to avoid confusion with messages vs notifications. (\", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://github.com/invertase/react-native-firebase/commit/d66a6118f82005087f53b86571990fc071402153\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"a\"\n  }, \"#d66a611\")), \")\"))), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"unregisterForRemoteNotifications\"), \" has been deprecated in favor of \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"unregisterDeviceForRemoteMessages\"), \".\", mdx(\"ul\", {\n    parentName: \"li\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"It will be removed in a following major version. Underlying functionality has not changed - renamed to avoid confusion with messages vs notifications. (\", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://github.com/invertase/react-native-firebase/commit/d66a6118f82005087f53b86571990fc071402153\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"a\"\n  }, \"#d66a611\")), \")\")))));\n}\n;\nMDXContent.isMDXComponent = true;","frontmatter":{"title":"v6.4.0","description":"Messaging focused release with features, bug fixes and documentation updates.","icon":null,"noindex":null},"excerpt":"Features iOS : added a  Podfile  option to allow using React Native Firebase packages as static frameworks ( #3253 ) ( #530f8bb ) see  Allow…","tableOfContents":{"items":[{"url":"#features","title":"Features","items":[{"url":"#messaging","title":"Messaging"}]},{"url":"#bug-fixes","title":"Bug Fixes","items":[{"url":"#analytics","title":"Analytics"},{"url":"#authentication","title":"Authentication"},{"url":"#dynamic-links","title":"Dynamic Links"},{"url":"#firestore","title":"Firestore"},{"url":"#functions","title":"Functions"},{"url":"#messaging-1","title":"Messaging"},{"url":"#storage","title":"Storage"}]},{"url":"#deprecations","title":"Deprecations","items":[{"url":"#messaging-2","title":"Messaging"}]}]},"headings":[{"depth":2,"value":"Features"},{"depth":3,"value":"Messaging"},{"depth":2,"value":"Bug Fixes"},{"depth":3,"value":"Analytics"},{"depth":3,"value":"Authentication"},{"depth":3,"value":"Dynamic Links"},{"depth":3,"value":"Firestore"},{"depth":3,"value":"Functions"},{"depth":3,"value":"Messaging"},{"depth":3,"value":"Storage"},{"depth":2,"value":"Deprecations"},{"depth":3,"value":"Messaging"}],"parent":{"__typename":"File","relativePath":"releases/v6.4.0.md"}},"next":null,"previous":null,"sidebar":{"raw":"[[\"Getting Started\",\"/\"],[\"Migration Guide to v22\",\"/migrating-to-v22\"],[\"Migration Guide to v23\",\"/migrating-to-v23\"],[\"TypeScript\",\"/typescript\"],[\"Platforms\",\"/platforms\"],[\"Release Notes\",\"/releases\"],[\"FAQs and Tips\",\"/faqs-and-tips\"],[\"Feature Requests\",\"https://invertase.canny.io/react-native-firebase\"],[\"Contributing\",\"https://github.com/invertase/react-native-firebase/blob/main/CONTRIBUTING.md\"],[\"AI Logic\",[[\"Usage\",\"/ai/usage\"]],\"//firebase.google.com/static/images/icons/firebase-ai-logic.svg\"],[\"Analytics\",[[\"Usage\",\"/analytics/usage\"],[\"Screen Tracking\",\"/analytics/screen-tracking\"],[\"Building an Analytics Funnel\",\"https://blog.theodo.com/2018/01/building-google-analytics-funnel-firebase-react-native\"]],\"//firebase.google.com/static/images/products/icons/run_analytics.svg\"],[\"App Check\",[[\"Usage\",\"/app-check/usage\"]],\"//firebase.google.com/static/images/products/icons/build_app_check.svg\"],[\"App Distribution\",[[\"Usage\",\"/app-distribution/usage\"]],\"//firebase.google.com/static/images/products/icons/run_app_distribution.svg\"],[\"Authentication\",[[\"Usage\",\"/auth/usage\"],[\"Social Auth\",\"/auth/social-auth\"],[\"Phone Auth\",\"/auth/phone-auth\"],[\"OpenID Connect Auth\",\"/auth/oidc-auth\"],[\"Multi-factor Auth\",\"/auth/multi-factor-auth\"]],\"//firebase.google.com/static/images/products/icons/build_auth.svg\"],[\"Cloud Firestore\",[[\"Usage\",\"/firestore/usage\"],[\"Usage with Emulator\",\"/firestore/emulator\"],[\"Usage with FlatLists\",\"/firestore/usage-with-flatlists\"],[\"Implementing Pagination\",\"/firestore/pagination\"],[\"Building a \\\"TODO\\\" app\",\"https://invertase.io/blog/getting-started-with-cloud-firestore-on-react-native\"]],\"//firebase.google.com/static/images/products/icons/build_firestore.svg\"],[\"Cloud Functions\",[[\"Usage\",\"/functions/usage\"],[\"Writing & Deploying Functions\",\"/functions/writing-deploying-functions\"]],\"//firebase.google.com/static/images/products/icons/build_functions.svg\"],[\"Cloud Messaging\",[[\"Usage\",\"/messaging/usage\"],[\"iOS Project Setup\",\"/messaging/usage/ios-setup\"],[\"iOS Permissions\",\"/messaging/ios-permissions\"],[\"Notifications\",\"/messaging/notifications\"],[\"iOS Notification Images\",\"/messaging/ios-notification-images\"],[\"Server Integration\",\"/messaging/server-integration\"]],\"//firebase.google.com/static/images/products/icons/run_cloud_messaging.svg\"],[\"Cloud Storage\",[[\"Usage\",\"/storage/usage\"]],\"//firebase.google.com/static/images/products/icons/build_storage.svg\"],[\"Core / App\",[[\"Usage\",\"/app/usage\"],[\"JSON Config\",\"/app/json-config\"],[\"Utils\",\"/app/utils\"]],\"//static.invertase.io/assets/social/firebase-logo.png\"],[\"Crashlytics\",[[\"Usage\",\"/crashlytics/usage\"],[\"Viewing crash reports\",\"/crashlytics/crash-reports\"]],\"//firebase.google.com/static/images/products/icons/run_crashlytics.svg\"],[\"Realtime Database\",[[\"Usage\",\"/database/usage\"],[\"Offline Support\",\"/database/offline-support\"],[\"Presence Detection\",\"/database/presence-detection\"]],\"//firebase.google.com/static/images/products/icons/build_realtime_database.svg\"],[\"In-App Messaging\",[[\"Usage\",\"/in-app-messaging/usage\"]],\"//firebase.google.com/static/images/products/icons/run_in_app_messaging.svg\"],[\"Installations\",[[\"Usage\",\"/installations/usage\"]],\"//static.invertase.io/assets/social/firebase-logo.png\"],[\"ML\",[[\"Usage\",\"/ml/usage\"]],\"//firebase.google.com/static/images/products/icons/build_ml.svg\"],[\"Remote Config\",[[\"Usage\",\"/remote-config/usage\"]],\"//firebase.google.com/static/images/products/icons/run_remote_config.svg\"],[\"Performance Monitoring\",[[\"Usage\",\"/perf/usage\"],[\"Axios Integration\",\"/perf/axios-integration\"],[\"KY Integration\",\"/perf/ky-integration\"]],\"//firebase.google.com/static/images/products/icons/run_performance.svg\"],[\"VertexAi\",[[\"Usage\",\"/vertexai/usage\"]],\"//static.invertase.io/assets/social/firebase-logo.png\"],[\"Legacy docs\",[[\"Migrating to v6\",\"/migrating-to-v6\"],[\"Legacy Docs (<= v5)\",\"https://v5.rnfirebase.io/docs/v5.x.x/getting-started\"]],\"//static.invertase.io/assets/social/firebase-logo.png\"]]"}},"pageContext":{"id":"726e3cec-014f-5031-a980-8afbe76b70c5","next":"-------","previous":"-------"}},"staticQueryHashes":["3688227230"]}