{"componentChunkName":"component---src-templates-documentation-tsx","path":"/","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\": \"React Native Firebase\",\n  \"description\": \"Welcome to React Native Firebase! To get started, you must first setup a Firebase project and install the \\\"app\\\" module.\",\n  \"next\": \"/migrating-to-v22\"\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(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"React Native Firebase has begun to deprecate the namespaced API (i.e firebase-js-sdk \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"< v9\"), \" chaining API). React Native Firebase will be moving to the modular API (i.e. firebase-js-sdk \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \">= v9\"), \") in the next major release. See \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"/migrating-to-v22\"\n  }, \"migration guide\"), \" for more information.\")), mdx(\"p\", null, \"React Native Firebase is the officially recommended collection of packages that brings React Native support for all Firebase services on both Android and iOS apps.\"), mdx(\"p\", null, \"React Native Firebase fully supports React Native apps built using \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://reactnative.dev/docs/environment-setup?guide=native\"\n  }, \"React Native CLI\"), \" or using \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://docs.expo.dev/\"\n  }, \"Expo\"), \".\"), mdx(\"h2\", {\n    \"id\": \"prerequisites\"\n  }, \"Prerequisites\"), mdx(\"p\", null, \"Before getting started, the documentation assumes you are able to create a project with React Native and that you have an active Firebase project.\\nIf you do not meet these prerequisites, follow the links below:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://reactnative.dev/docs/environment-setup\"\n  }, \"React Native - Setting up the development environment\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://console.firebase.google.com/\"\n  }, \"Create a new Firebase project\"))), mdx(\"p\", null, \"Additionally, current versions of firebase-ios-sdk have a minimum Xcode requirement of 16.2, which implies a minimum macOS version of 14.5 (macOS Sequoia).\"), mdx(\"h2\", {\n    \"id\": \"installation-for-expo-projects\"\n  }, \"Installation for Expo projects\"), mdx(\"p\", null, \"Integration with Expo is possible when using a \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://docs.expo.dev/workflow/overview/#development-builds\"\n  }, \"development build\"), \". You can configure the project via \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://docs.expo.io/guides/config-plugins/\"\n  }, \"config plugins\"), \" or manually configure the native projects yourself (the \\\"bare workflow\\\").\"), mdx(\"p\", null, mdx(\"em\", {\n    parentName: \"p\"\n  }, \"NOTE:\"), \" React Native Firebase cannot be used in the pre-compiled \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://docs.expo.dev/workflow/overview/#expo-go-an-optional-tool-for-learning\"\n  }, \"Expo Go app\"), \" because React Native Firebase uses native code that is not compiled into Expo Go.\"), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Warning:\"), \" If you are using \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"expo-dev-client\"), \", native crashes (such as those triggered by \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"crashlytics().crash()\"), \") will \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"not\"), \" be reported to Firebase Crashlytics during development. This is because \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"expo-dev-client\"), \" provides a custom error overlay that catches and displays errors before they are sent to Firebase. To test native crash reporting, you must remove \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"expo-dev-client\"), \" and run your app in a standard release or debug build without the custom error overlay.\")), mdx(\"p\", null, \"To create a new Expo project, see the \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://docs.expo.dev/get-started/create-a-project/\"\n  }, \"Get started\"), \" guide in Expo documentation.\"), mdx(\"h3\", {\n    \"id\": \"install-react-native-firebase-modules\"\n  }, \"Install React Native Firebase modules\"), mdx(\"p\", null, \"To install React Native Firebase's base \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"app\"), \" module, use the command \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"npx expo install @react-native-firebase/app\"), \".\"), mdx(\"p\", null, \"Similarly you can install other React Native Firebase modules such as for Authentication and Crashlytics: \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"npx expo install @react-native-firebase/auth @react-native-firebase/crashlytics\"), \".\"), mdx(\"h3\", {\n    \"id\": \"configure-react-native-firebase-modules\"\n  }, \"Configure React Native Firebase modules\"), mdx(\"p\", null, \"The recommended approach to configure React Native Firebase is to use \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://docs.expo.dev/config-plugins/introduction/\"\n  }, \"Expo Config Plugins\"), \". You will add React Native Firebase modules to the \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://docs.expo.io/versions/latest/config/app/#plugins\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"a\"\n  }, \"plugins\")), \" array of your \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"app.json\"), \" or \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"app.config.js\"), \". See the note below to determine which modules require Config Plugin configurations.\"), mdx(\"p\", null, \"If you are instead manually adjusting your Android and iOS projects (this is not recommended), follow the same instructions as \", \"[React Native CLI projects]\", \"(#Installation for React Native CLI (non-Expo) projects).\"), mdx(\"p\", null, \"To enable Firebase on the native Android and iOS platforms, create and download Service Account files for each platform from your Firebase project. Then provide paths to the downloaded \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"google-services.json\"), \" and \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"GoogleService-Info.plist\"), \" files in the following \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"app.json\"), \" fields: \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://docs.expo.io/versions/latest/config/app/#googleservicesfile-1\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"a\"\n  }, \"expo.android.googleServicesFile\")), \" and \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://docs.expo.io/versions/latest/config/app/#googleservicesfile\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"a\"\n  }, \"expo.ios.googleServicesFile\")), \". See the example configuration below.\"), mdx(\"p\", null, \"For iOS only, since \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"firebase-ios-sdk\"), \" requires \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"use_frameworks\"), \" then you want to configure \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://docs.expo.dev/versions/latest/sdk/build-properties/#pluginconfigtypeios\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"a\"\n  }, \"expo-build-properties\")), \" \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"app.json\"), \" by adding \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"\\\"useFrameworks\\\": \\\"static\\\"\"), \". See the example configuration below.\"), mdx(\"p\", null, \"The following is an example \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"app.json\"), \" to enable the React Native Firebase modules App, Auth and Crashlytics, that specifies the Service Account files for both mobile platforms, and that sets the application ID to the example value of \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"com.mycorp.myapp\"), \" (change to match your own):\"), mdx(\"pre\", {\n    \"className\": \"language-json\"\n  }, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-json\"\n  }, mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"{\"), \"\\n  \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token property\"\n  }, \"\\\"expo\\\"\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token operator\"\n  }, \":\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"{\"), \"\\n    \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token property\"\n  }, \"\\\"android\\\"\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token operator\"\n  }, \":\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"{\"), \"\\n      \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token property\"\n  }, \"\\\"googleServicesFile\\\"\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token operator\"\n  }, \":\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token string\"\n  }, \"\\\"./google-services.json\\\"\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \",\"), \"\\n      \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token property\"\n  }, \"\\\"package\\\"\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token operator\"\n  }, \":\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token string\"\n  }, \"\\\"com.mycorp.myapp\\\"\"), \"\\n    \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"}\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \",\"), \"\\n    \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token property\"\n  }, \"\\\"ios\\\"\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token operator\"\n  }, \":\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"{\"), \"\\n      \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token property\"\n  }, \"\\\"googleServicesFile\\\"\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token operator\"\n  }, \":\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token string\"\n  }, \"\\\"./GoogleService-Info.plist\\\"\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \",\"), \"\\n      \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token property\"\n  }, \"\\\"bundleIdentifier\\\"\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token operator\"\n  }, \":\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token string\"\n  }, \"\\\"com.mycorp.myapp\\\"\"), \"\\n    \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"}\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \",\"), \"\\n    \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token property\"\n  }, \"\\\"plugins\\\"\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token operator\"\n  }, \":\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"[\"), \"\\n      \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token string\"\n  }, \"\\\"@react-native-firebase/app\\\"\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \",\"), \"\\n      \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token string\"\n  }, \"\\\"@react-native-firebase/auth\\\"\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \",\"), \"\\n      \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token string\"\n  }, \"\\\"@react-native-firebase/crashlytics\\\"\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \",\"), \"\\n      \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"[\"), \"\\n        \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token string\"\n  }, \"\\\"expo-build-properties\\\"\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \",\"), \"\\n        \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"{\"), \"\\n          \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token property\"\n  }, \"\\\"ios\\\"\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token operator\"\n  }, \":\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"{\"), \"\\n            \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token property\"\n  }, \"\\\"useFrameworks\\\"\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token operator\"\n  }, \":\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token string\"\n  }, \"\\\"static\\\"\"), \"\\n          \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"}\"), \"\\n        \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"}\"), \"\\n      \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"]\"), \"\\n    \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"]\"), \"\\n  \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"}\"), \"\\n\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"}\"), \"\\n\")), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"Listing a module in the Config Plugins (the \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"\\\"plugins\\\"\"), \" array in the JSON above) is only required for React Native Firebase modules that involve \", mdx(\"em\", {\n    parentName: \"p\"\n  }, \"native installation steps\"), \" - e.g. modifying the Xcode project, \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"Podfile\"), \", \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"build.gradle\"), \", \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"AndroidManifest.xml\"), \" etc. React Native Firebase modules without native steps will work out of the box; no \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"\\\"plugins\\\"\"), \" entry is required. Not all modules have Expo Config Plugins provided yet. A React Native Firebase module has Config Plugin support if it contains an \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"app.plugin.js\"), \" file in its package directory (e.g.\", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"node_modules/@react-native-firebase/app/app.plugin.js\"), \").\")), mdx(\"h3\", {\n    \"id\": \"local-app-compilation\"\n  }, \"Local app compilation\"), mdx(\"p\", null, \"If you are compiling your app locally, run \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://docs.expo.dev/workflow/prebuild/\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"a\"\n  }, \"npx expo prebuild --clean\")), \" to generate the native project directories. Then, follow the local app compilation steps described in \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://docs.expo.dev/guides/local-app-development/\"\n  }, \"Local app development\"), \" guide in Expo docs. If you prefer using a build service, refer to \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://docs.expo.dev/build/setup/\"\n  }, \"EAS Build\"), \".\"), mdx(\"p\", null, \"Note: if you have already installed an Expo development build (using something like \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"npx expo run\"), \" after doing the \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"--prebuild\"), \" local development steps...) before installing react-native-firebase, then you must uninstall it first as it will not contain the react-native-firebase native modules and you will get errors with \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"RNFBAppModule not found\"), \" etc. If so, uninstall the previous development build, do a clean build using \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"npx expo prebuild --clean\"), \", and then attempt \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"npx expo run:<platform>\"), \" again.\"), mdx(\"h3\", {\n    \"id\": \"expo-tools-for-vscode\"\n  }, \"Expo Tools for VSCode\"), mdx(\"p\", null, \"If you are using the \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://marketplace.visualstudio.com/items?itemName=expo.vscode-expo-tools\"\n  }, \"Expo Tools\"), \" VSCode extension, the IntelliSense will display a list of available plugins when editing the \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"plugins\"), \" section of \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"app.json\"), \".\"), mdx(\"hr\", null), mdx(\"h2\", {\n    \"id\": \"installation-for-react-native-cli-non-expo-projects\"\n  }, \"Installation for React Native CLI (non-Expo) projects\"), mdx(\"p\", null, \"Installing React Native Firebase to a RN CLI project requires a few steps; installing the NPM module, adding the Firebase config files &\\nrebuilding your application.\"), mdx(\"h3\", {\n    \"id\": \"1-install-via-npm\"\n  }, \"1. Install via NPM\"), mdx(\"p\", null, \"Install the React Native Firebase \\\"app\\\" module to the root of your React Native project with NPM or Yarn:\"), mdx(\"pre\", {\n    \"className\": \"language-bash\"\n  }, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token comment\"\n  }, \"# Using npm\"), \"\\n\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token function\"\n  }, \"npm\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token function\"\n  }, \"install\"), \" --save @react-native-firebase/app\\n\\n\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token comment\"\n  }, \"# Using Yarn\"), \"\\n\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token function\"\n  }, \"yarn\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token function\"\n  }, \"add\"), \" @react-native-firebase/app\\n\")), mdx(\"p\", null, \"The \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"@react-native-firebase/app\"), \" module must be installed before using any other Firebase service.\"), mdx(\"h3\", {\n    \"id\": \"2-react-native-cli---android-setup\"\n  }, \"2. React Native CLI - Android Setup\"), mdx(\"p\", null, \"To allow the Android app to securely connect to your Firebase project, a configuration file must be downloaded and added\\nto your project.\"), mdx(\"h4\", {\n    \"id\": \"generating-android-credentials\"\n  }, \"Generating Android credentials\"), mdx(\"p\", null, \"On the Firebase console, add a new Android application and enter your projects details. The \\\"Android package name\\\" must match your\\nlocal projects package name which can be found inside of the \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"namespace\"), \" field in \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"/android/app/build.gradle\"), \", or in the\\n\", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"manifest\"), \" tag within the \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"/android/app/src/main/AndroidManifest.xml\"), \" file within your project for projects using android gradle plugin v7 and below\"), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"The debug signing certificate is optional to use Firebase with your app, but is required for Invites and Phone Authentication.\\nTo generate a certificate run \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"cd android && ./gradlew signingReport\"), \". This generates two variant keys.\\nYou have to copy \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"both\"), \" 'SHA1' and 'SHA-256' keys that belong to the 'debugAndroidTest' variant key option.\\nThen, you can add those keys to the 'SHA certificate fingerprints' on your app in Firebase console.\")), mdx(\"p\", null, \"Download the \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"google-services.json\"), \" file and place it inside of your project at the following location: \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"/android/app/google-services.json\"), \".\"), mdx(\"h4\", {\n    \"id\": \"configure-firebase-with-android-credentials\"\n  }, \"Configure Firebase with Android credentials\"), mdx(\"p\", null, \"To allow Firebase on Android to use the credentials, the \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"google-services\"), \" plugin must be enabled on the project. This requires modification to two\\nfiles in the Android directory.\"), mdx(\"p\", null, \"First, add the \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"google-services\"), \" plugin as a dependency inside of your \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"/android/build.gradle\"), \" file:\"), mdx(\"pre\", {\n    \"className\": \"language-groovy\"\n  }, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-groovy\"\n  }, \"buildscript \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"{\"), \"\\n  dependencies \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"{\"), \"\\n    \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token comment\"\n  }, \"// ... other dependencies\"), \"\\n    classpath \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token string\"\n  }, \"'com.google.gms:google-services:4.4.4'\"), \"\\n    \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token comment\"\n  }, \"// Add me --- /\\\\\"), \"\\n  \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"}\"), \"\\n\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"}\"), \"\\n\")), mdx(\"p\", null, \"Lastly, execute the plugin by adding the following to your \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"/android/app/build.gradle\"), \" file:\"), mdx(\"pre\", {\n    \"className\": \"language-groovy\"\n  }, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-groovy\"\n  }, \"apply plugin\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token string\"\n  }, \"'com.android.application'\"), \"\\napply plugin\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token string\"\n  }, \"'com.google.gms.google-services'\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token comment\"\n  }, \"// <- Add this line\"), \"\\n\")), mdx(\"h3\", {\n    \"id\": \"3-react-native-cli---ios-setup\"\n  }, \"3. React Native CLI - iOS Setup\"), mdx(\"p\", null, \"To allow the iOS app to securely connect to your Firebase project, a configuration file must be downloaded and added to your project, and you must enable frameworks in CocoaPods\"), mdx(\"h4\", {\n    \"id\": \"generating-ios-credentials\"\n  }, \"Generating iOS credentials\"), mdx(\"p\", null, \"On the Firebase console, add a new iOS application and enter your projects details. The \\\"iOS bundle ID\\\" must match your\\nlocal project bundle ID. The bundle ID can be found within the \\\"General\\\" tab when opening the project with Xcode.\"), mdx(\"p\", null, \"Download the \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"GoogleService-Info.plist\"), \" file.\"), mdx(\"p\", null, \"Using Xcode, open the projects \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"/ios/{projectName}.xcodeproj\"), \" file (or \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"/ios/{projectName}.xcworkspace\"), \" if using Pods).\"), mdx(\"p\", null, \"Right click on the project name and \\\"Add files\\\" to the project, as demonstrated below:\"), mdx(\"p\", null, mdx(\"img\", {\n    parentName: \"p\",\n    \"src\": \"https://images.prismic.io/invertase/717983c0-63ca-4b6b-adc5-31318422ab47_add-files-via-xcode.png?auto=format\",\n    \"alt\": \"Add files via Xcode\"\n  })), mdx(\"p\", null, \"Select the downloaded \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"GoogleService-Info.plist\"), \" file from your computer, and ensure the \\\"Copy items if needed\\\" checkbox is enabled.\"), mdx(\"p\", null, mdx(\"img\", {\n    parentName: \"p\",\n    \"src\": \"https://prismic-io.s3.amazonaws.com/invertase%2F7d37e0ce-3e79-468d-930c-b7dc7bc2e291_unknown+%282%29.png\",\n    \"alt\": \"Select 'Copy Items if needed'\"\n  })), mdx(\"h4\", {\n    \"id\": \"configure-firebase-with-ios-credentials-react-native-077\"\n  }, \"Configure Firebase with iOS credentials (react-native 0.77+)\"), mdx(\"p\", null, \"To allow Firebase on iOS to use the credentials, the Firebase iOS SDK must be configured during the bootstrap phase of your application.\"), mdx(\"p\", null, \"To do this, open your \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"/ios/{projectName}/AppDelegate.swift\"), \" file and add the following:\"), mdx(\"p\", null, \"At the top of the file, import the Firebase SDK right after \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"'import ReactAppDependencyProvider'\"), \":\"), mdx(\"pre\", {\n    \"className\": \"language-swift\"\n  }, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-swift\"\n  }, mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token keyword\"\n  }, \"import\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token builtin\"\n  }, \"Firebase\"), \"\\n\")), mdx(\"p\", null, \"Within your existing \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"application\"), \" method, add the following to the top of the method:\"), mdx(\"pre\", {\n    \"className\": \"language-swift\"\n  }, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-swift\"\n  }, \"  \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token keyword\"\n  }, \"override\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token keyword\"\n  }, \"func\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token function\"\n  }, \"application\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"(\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token number\"\n  }, \"_\"), \" application\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token builtin\"\n  }, \"UIApplication\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \",\"), \" didFinishLaunchingWithOptions launchOptions\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"[\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token builtin\"\n  }, \"UIApplication\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \".\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token builtin\"\n  }, \"LaunchOptionsKey\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token builtin\"\n  }, \"Any\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"]\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token operator\"\n  }, \"?\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token operator\"\n  }, \"=\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token constant\"\n  }, \"nil\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \")\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token operator\"\n  }, \"-\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token operator\"\n  }, \">\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token builtin\"\n  }, \"Bool\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"{\"), \"\\n  \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token comment\"\n  }, \"// Add me --- \\\\/\"), \"\\n  \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token builtin\"\n  }, \"FirebaseApp\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \".\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token function\"\n  }, \"configure\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"(\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \")\"), \"\\n  \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token comment\"\n  }, \"// Add me --- /\\\\\"), \"\\n  \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token comment\"\n  }, \"// ...\"), \"\\n\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"}\"), \"\\n\")), mdx(\"h4\", {\n    \"id\": \"configure-firebase-with-ios-credentials-react-native--077\"\n  }, \"Configure Firebase with iOS credentials (react-native < 0.77)\"), mdx(\"p\", null, \"To allow Firebase on iOS to use the credentials, the Firebase iOS SDK must be configured during the bootstrap phase of your application.\"), mdx(\"p\", null, \"To do this, open your \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"/ios/{projectName}/AppDelegate.mm\"), \" file (or \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"AppDelegate.m\"), \" if on older react-native), and add the following:\"), mdx(\"p\", null, \"At the top of the file, import the Firebase SDK right after \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"'#import \\\"AppDelegate.h\\\"'\"), \":\"), mdx(\"pre\", {\n    \"className\": \"language-objectivec\"\n  }, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-objectivec\"\n  }, mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token macro property\"\n  }, \"#\", mdx(\"span\", {\n    parentName: \"span\",\n    \"className\": \"token directive keyword\"\n  }, \"import\"), \" <Firebase.h>\"), \"\\n\")), mdx(\"p\", null, \"Within your existing \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"didFinishLaunchingWithOptions\"), \" method, add the following to the top of the method:\"), mdx(\"pre\", {\n    \"className\": \"language-objectivec\"\n  }, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-objectivec\"\n  }, mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token operator\"\n  }, \"-\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"(\"), \"BOOL\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \")\"), \"application\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"(\"), \"UIApplication \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token operator\"\n  }, \"*\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \")\"), \"application didFinishLaunchingWithOptions\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"(\"), \"NSDictionary \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token operator\"\n  }, \"*\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \")\"), \"launchOptions \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"{\"), \"\\n  \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token comment\"\n  }, \"// Add me --- \\\\/\"), \"\\n  \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"[\"), \"FIRApp configure\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"]\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \";\"), \"\\n  \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token comment\"\n  }, \"// Add me --- /\\\\\"), \"\\n  \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token comment\"\n  }, \"// ...\"), \"\\n\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"}\"), \"\\n\")), mdx(\"h4\", {\n    \"id\": \"altering-cocoapods-to-use-frameworks\"\n  }, \"Altering CocoaPods to use frameworks\"), mdx(\"p\", null, \"Beginning with firebase-ios-sdk v9+ (react-native-firebase v15+) you must tell CocoaPods to use frameworks.\"), mdx(\"p\", null, \"Open the file \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"./ios/Podfile\"), \" and add this line inside your targets (right before the \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"use_react_native\"), \" line in current react-native releases that calls the react native Podfile function to get the native modules config):\"), mdx(\"pre\", {\n    \"className\": \"language-ruby\"\n  }, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-ruby\"\n  }, \"use_frameworks\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token operator\"\n  }, \"!\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token symbol\"\n  }, \":linkage\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token operator\"\n  }, \"=\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token operator\"\n  }, \">\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token symbol\"\n  }, \":static\"), \"\\n\")), mdx(\"p\", null, \"To use Static Frameworks on iOS, you also need to manually enable this for the project with the following global to your \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"/ios/Podfile\"), \" file:\"), mdx(\"pre\", {\n    \"className\": \"language-ruby\"\n  }, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-ruby\"\n  }, mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token comment\"\n  }, \"# right after `use_frameworks! :linkage => :static`\"), \"\\n\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token variable\"\n  }, \"$RNFirebaseAsStaticFramework\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token operator\"\n  }, \"=\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token keyword\"\n  }, \"true\"), \"\\n\")), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"Notes: React-Native-Firebase uses \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"use_frameworks\"), \", which has compatibility issues with Flipper & Fabric.\"), mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Flipper:\"), \" \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"use_frameworks\"), \" \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://github.com/reactwg/react-native-releases/discussions/21#discussioncomment-2924919\"\n  }, \"is \", mdx(\"em\", {\n    parentName: \"a\"\n  }, \"not\"), \" compatible with Flipper\"), \". You must disable Flipper by commenting out the \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \":flipper_configuration\"), \" line in your Podfile. Flipper is deprecated in the react-native community and this will not be fixed - Flipper and react-native-firebase will never work together on iOS.\"), mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"New Architecture:\"), \" Fabric is partially compatible with \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"use_frameworks!\"), \". If you enable the bridged / compatibility mode, react-native-firebase will compile correctly and be usable.\")), mdx(\"h3\", {\n    \"id\": \"4-autolinking--rebuilding\"\n  }, \"4. Autolinking & rebuilding\"), mdx(\"p\", null, \"Once the above steps have been completed, the React Native Firebase library must be linked to your project and your application needs to be rebuilt.\"), mdx(\"p\", null, \"Users on React Native 0.60+ automatically have access to \\\"\", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://github.com/react-native-community/cli/blob/master/docs/autolinking.md\"\n  }, \"autolinking\"), \"\\\",\\nrequiring no further manual installation steps. To automatically link the package, rebuild your project:\"), mdx(\"pre\", {\n    \"className\": \"language-bash\"\n  }, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token comment\"\n  }, \"# Android apps\"), \"\\nnpx react-native run-android\\n\\n\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token comment\"\n  }, \"# iOS apps\"), \"\\n\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token builtin class-name\"\n  }, \"cd\"), \" ios/\\npod \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token function\"\n  }, \"install\"), \" --repo-update\\n\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token builtin class-name\"\n  }, \"cd\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"..\"), \"\\nnpx react-native run-ios\\n\")), mdx(\"p\", null, \"Once successfully linked and rebuilt, your application will be connected to Firebase using the \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"@react-native-firebase/app\"), \" module. This module does not provide much functionality, therefore to use other Firebase services, each of the modules for the individual Firebase services need installing separately.\"), mdx(\"hr\", null), mdx(\"h2\", {\n    \"id\": \"other--web\"\n  }, \"Other / Web\"), mdx(\"p\", null, \"If you are using the firebase-js-sdk fallback support for \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"platforms#other-platforms\"\n  }, \"web or \\\"other\\\" platforms\"), \" then you must initialize Firebase dynamically by calling \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"/reference/app#initializeApp\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"a\"\n  }, \"initializeApp\")), \".\"), mdx(\"p\", null, \"However, you only want to do this for the web platform. For non-web / native apps the \\\"default\\\" firebase app instance will already be configured by the native google-services.json / GoogleServices-Info.plist files as mentioned above.\"), mdx(\"p\", null, \"At some point during your application's bootstrap processes, initialize firebase like this:\"), mdx(\"pre\", {\n    \"className\": \"language-javascript\"\n  }, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-javascript\"\n  }, mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token keyword module\"\n  }, \"import\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"{\"), \" getApp\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \",\"), \" initializeApp \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"}\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token keyword module\"\n  }, \"from\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token string\"\n  }, \"'@react-native-firebase/app'\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \";\"), \"\\n\\n\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token comment\"\n  }, \"// web requires dynamic initialization on web prior to using firebase\"), \"\\n\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token keyword\"\n  }, \"if\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"(\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token maybe-class-name\"\n  }, \"Platform\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \".\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token constant\"\n  }, \"OS\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token operator\"\n  }, \"===\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token string\"\n  }, \"'web'\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \")\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"{\"), \"\\n  \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token keyword\"\n  }, \"const\"), \" firebaseConfig \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token operator\"\n  }, \"=\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"{\"), \"\\n    \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token comment\"\n  }, \"// ... config items pasted from firebase console for your web app here\"), \"\\n  \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"}\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \";\"), \"\\n\\n  \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token function\"\n  }, \"initializeApp\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"(\"), \"firebaseConfig\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \")\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \";\"), \"\\n\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"}\"), \"\\n\\n\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token comment\"\n  }, \"// ...now throughout your app, use firebase APIs normally, for example:\"), \"\\n\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token keyword\"\n  }, \"const\"), \" firebaseApp \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token operator\"\n  }, \"=\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token function\"\n  }, \"getApp\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"(\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \")\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \";\"), \"\\n\")), mdx(\"hr\", null), mdx(\"h2\", {\n    \"id\": \"miscellaneous\"\n  }, \"Miscellaneous\"), mdx(\"h3\", {\n    \"id\": \"overriding-native-sdk-versions\"\n  }, \"Overriding Native SDK Versions\"), mdx(\"p\", null, \"React Native Firebase internally sets the versions of the native SDKs which each module uses. Each release of the library\\nis tested against a fixed set of SDK versions (e.g. Firebase SDKs), allowing us to be confident that every feature the\\nlibrary supports is working as expected.\"), mdx(\"p\", null, \"Sometimes it's required to change these versions to play nicely with other React Native libraries or to work around temporary build failures; therefore we allow\\nmanually overriding these native SDK versions.\"), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"Using your own SDK versions is not recommended and not supported as it can lead to unexpected build failures when new react-native-firebase versions are released that expect to use new SDK versions. Proceed with caution and remove these overrides as soon as possible when no longer needed.\")), mdx(\"h4\", {\n    \"id\": \"android\"\n  }, \"Android\"), mdx(\"p\", null, \"Within your projects /android/build.gradle file, provide your own versions by specifying any of the following options shown below:\"), mdx(\"pre\", {\n    \"className\": \"language-groovy\"\n  }, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-groovy\"\n  }, \"project\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token operator\"\n  }, \".\"), \"ext \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"{\"), \"\\n  \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token function\"\n  }, \"set\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"(\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token string\"\n  }, \"'react-native'\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \",\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"[\"), \"\\n    versions\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"[\"), \"\\n      \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token comment\"\n  }, \"// Overriding Build/Android SDK Versions if desired\"), \"\\n      android \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"[\"), \"\\n        minSdk    \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token number\"\n  }, \"23\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \",\"), \"\\n        targetSdk \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token number\"\n  }, \"33\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \",\"), \"\\n        compileSdk\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token number\"\n  }, \"34\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \",\"), \"\\n      \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"]\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \",\"), \"\\n\\n      \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token comment\"\n  }, \"// Overriding Library SDK Versions if desired\"), \"\\n      firebase\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"[\"), \"\\n        \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token comment\"\n  }, \"// Override Firebase SDK Version\"), \"\\n        bom           \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token string gstring\"\n  }, \"\\\"34.7.0\\\"\"), \"\\n      \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"]\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \",\"), \"\\n    \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"]\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \",\"), \"\\n  \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"]\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \")\"), \"\\n\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"}\"), \"\\n\")), mdx(\"p\", null, \"Once changed, rebuild your application with \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"npx react-native run-android\"), \".\"), mdx(\"h4\", {\n    \"id\": \"ios\"\n  }, \"iOS\"), mdx(\"p\", null, \"Open your projects \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"/ios/Podfile\"), \" and add any of the globals shown below to the top of the file:\"), mdx(\"pre\", {\n    \"className\": \"language-ruby\"\n  }, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-ruby\"\n  }, mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token comment\"\n  }, \"# Override Firebase SDK Version if desired\"), \"\\n\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token variable\"\n  }, \"$FirebaseSDKVersion\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token operator\"\n  }, \"=\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token string\"\n  }, \"'12.8.0'\"), \"\\n\")), mdx(\"p\", null, \"Once changed, reinstall your projects pods via pod install and rebuild your project with \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"npx react-native run-ios\"), \".\"), mdx(\"p\", null, \"Alternatively, if you cannot edit the Podfile easily (as when using Expo), you may add the environment variable \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"FIREBASE_SDK_VERSION=12.8.0\"), \" (or whatever version you need) to the command line that installs pods. For example \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"FIREBASE_SDK_VERSION=12.8.0 yarn expo prebuild --clean\")), mdx(\"h3\", {\n    \"id\": \"android-performance\"\n  }, \"Android Performance\"), mdx(\"p\", null, \"On Android, React Native Firebase uses \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://developer.android.com/reference/java/util/concurrent/ThreadPoolExecutor\"\n  }, \"thread pool executor\"), \" to provide improved performance and managed resources.\\nTo increase throughput, you can tune the thread pool executor via \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"firebase.json\"), \" file within the root of your project:\"), mdx(\"pre\", {\n    \"className\": \"language-json\"\n  }, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-json\"\n  }, mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token comment\"\n  }, \"// <project-root>/firebase.json\"), \"\\n\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"{\"), \"\\n  \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token property\"\n  }, \"\\\"react-native\\\"\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token operator\"\n  }, \":\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"{\"), \"\\n    \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token property\"\n  }, \"\\\"android_task_executor_maximum_pool_size\\\"\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token operator\"\n  }, \":\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token number\"\n  }, \"10\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \",\"), \"\\n    \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token property\"\n  }, \"\\\"android_task_executor_keep_alive_seconds\\\"\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token operator\"\n  }, \":\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token number\"\n  }, \"3\"), \"\\n  \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"}\"), \"\\n\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"}\"), \"\\n\")), mdx(\"table\", null, mdx(\"thead\", {\n    parentName: \"table\"\n  }, mdx(\"tr\", {\n    parentName: \"thead\"\n  }, mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Key\"), mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Description\"))), mdx(\"tbody\", {\n    parentName: \"table\"\n  }, mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"android_task_executor_maximum_pool_size\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Maximum pool size of ThreadPoolExecutor. Defaults to \", mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"1\"), \". Larger values typically improve performance when executing large numbers of asynchronous tasks, e.g. Firestore queries. Setting this value to \", mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"0\"), \" completely disables the pooled executor and all tasks execute in serial per module.\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"android_task_executor_keep_alive_seconds\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Keep-alive time of ThreadPoolExecutor, in seconds. Defaults to \", mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"3\"), \". Excess threads in the pool executor will be terminated if they have been idle for more than the keep-alive time. This value doesn't have any effect when the maximum pool size is lower than \", mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"2\"), \".\")))));\n}\n;\nMDXContent.isMDXComponent = true;","frontmatter":{"title":"React Native Firebase","description":"Welcome to React Native Firebase! To get started, you must first setup a Firebase project and install the \"app\" module.","icon":null,"noindex":null},"excerpt":"React Native Firebase has begun to deprecate the namespaced API (i.e firebase-js-sdk  < v9  chaining API). React Native Firebase will be…","tableOfContents":{"items":[{"url":"#prerequisites","title":"Prerequisites"},{"url":"#installation-for-expo-projects","title":"Installation for Expo projects","items":[{"url":"#install-react-native-firebase-modules","title":"Install React Native Firebase modules"},{"url":"#configure-react-native-firebase-modules","title":"Configure React Native Firebase modules"},{"url":"#local-app-compilation","title":"Local app compilation"},{"url":"#expo-tools-for-vscode","title":"Expo Tools for VSCode"}]},{"url":"#installation-for-react-native-cli-non-expo-projects","title":"Installation for React Native CLI (non-Expo) projects","items":[{"url":"#1-install-via-npm","title":"1. Install via NPM"},{"url":"#2-react-native-cli---android-setup","title":"2. React Native CLI - Android Setup","items":[{"url":"#generating-android-credentials","title":"Generating Android credentials"},{"url":"#configure-firebase-with-android-credentials","title":"Configure Firebase with Android credentials"}]},{"url":"#3-react-native-cli---ios-setup","title":"3. React Native CLI - iOS Setup","items":[{"url":"#generating-ios-credentials","title":"Generating iOS credentials"},{"url":"#configure-firebase-with-ios-credentials-react-native-077","title":"Configure Firebase with iOS credentials (react-native 0.77+)"},{"url":"#configure-firebase-with-ios-credentials-react-native--077","title":"Configure Firebase with iOS credentials (react-native < 0.77)"},{"url":"#altering-cocoapods-to-use-frameworks","title":"Altering CocoaPods to use frameworks"}]},{"url":"#4-autolinking--rebuilding","title":"4. Autolinking & rebuilding"}]},{"url":"#other--web","title":"Other / Web"},{"url":"#miscellaneous","title":"Miscellaneous","items":[{"url":"#overriding-native-sdk-versions","title":"Overriding Native SDK Versions","items":[{"url":"#android","title":"Android"},{"url":"#ios","title":"iOS"}]},{"url":"#android-performance","title":"Android Performance"}]}]},"headings":[{"depth":2,"value":"Prerequisites"},{"depth":2,"value":"Installation for Expo projects"},{"depth":3,"value":"Install React Native Firebase modules"},{"depth":3,"value":"Configure React Native Firebase modules"},{"depth":3,"value":"Local app compilation"},{"depth":3,"value":"Expo Tools for VSCode"},{"depth":2,"value":"Installation for React Native CLI (non-Expo) projects"},{"depth":3,"value":"1. Install via NPM"},{"depth":3,"value":"2. React Native CLI - Android Setup"},{"depth":4,"value":"Generating Android credentials"},{"depth":4,"value":"Configure Firebase with Android credentials"},{"depth":3,"value":"3. React Native CLI - iOS Setup"},{"depth":4,"value":"Generating iOS credentials"},{"depth":4,"value":"Configure Firebase with iOS credentials (react-native 0.77+)"},{"depth":4,"value":"Configure Firebase with iOS credentials (react-native < 0.77)"},{"depth":4,"value":"Altering CocoaPods to use frameworks"},{"depth":3,"value":"4. Autolinking & rebuilding"},{"depth":2,"value":"Other / Web"},{"depth":2,"value":"Miscellaneous"},{"depth":3,"value":"Overriding Native SDK Versions"},{"depth":4,"value":"Android"},{"depth":4,"value":"iOS"},{"depth":3,"value":"Android Performance"}],"parent":{"__typename":"File","relativePath":"index.md"}},"next":{"frontmatter":{"title":"Migrating to v22"},"fields":{"slug":"/migrating-to-v22"}},"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":"34fad6dc-32d8-5d6f-87b9-99946ba67231","next":"/migrating-to-v22","previous":"-------"}},"staticQueryHashes":["3688227230"]}