CINXE.COM

Add Firebase to your Android project

<!doctype html> <html lang="en" dir="ltr"> <head><script type="text/javascript" src="/_static/js/bundle-playback.js?v=HxkREWBo" charset="utf-8"></script> <script type="text/javascript" src="/_static/js/wombat.js?v=txqj7nKC" charset="utf-8"></script> <script>window.RufflePlayer=window.RufflePlayer||{};window.RufflePlayer.config={"autoplay":"on","unmuteOverlay":"hidden"};</script> <script type="text/javascript" src="/_static/js/ruffle/ruffle.js"></script> <script type="text/javascript"> __wm.init("https://web.archive.org/web"); __wm.wombat("https://firebase.google.com/docs/android/setup","20210428230634","https://web.archive.org/","web","/_static/", "1619651194"); </script> <link rel="stylesheet" type="text/css" href="/_static/css/banner-styles.css?v=S1zqJCYt" /> <link rel="stylesheet" type="text/css" href="/_static/css/iconochive.css?v=3PDvdIFv" /> <!-- End Wayback Rewrite JS Include --> <meta name="google-signin-client-id" content="721724668570-nbkv1cfusk7kk4eni4pjvepaus73b13t.apps.googleusercontent.com"> <meta name="google-signin-scope" content="profile email"> <meta property="og:site_name" content="Firebase"> <meta property="og:type" content="website"> <meta name="theme-color" content="#039be5"> <meta charset="utf-8"> <meta content="IE=Edge" http-equiv="X-UA-Compatible"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="manifest" href="/web/20210428230634/https://firebase.google.com/_pwa/firebase/manifest.json" crossorigin="use-credentials"> <link rel="preconnect" href="//web.archive.org/web/20210428230634/https://www.gstatic.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20210428230634/https://fonts.gstatic.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20210428230634/https://fonts.googleapis.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20210428230634/https://apis.google.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20210428230634/https://www.google-analytics.com/" crossorigin> <link rel="stylesheet" href="//web.archive.org/web/20210428230634cs_/https://fonts.googleapis.com/css?family=Google+Sans:400,500|Roboto:400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700|Material+Icons"> <link rel="stylesheet" href="https://web.archive.org/web/20210428230634cs_/https://www.gstatic.com/devrel-devsite/prod/v03a3d4c6437e99a41d40c6bdaf7de2967257b2f68f85375303e5316db6e039e3/firebase/css/app.css"> <link rel="shortcut icon" href="https://web.archive.org/web/20210428230634im_/https://www.gstatic.com/devrel-devsite/prod/v03a3d4c6437e99a41d40c6bdaf7de2967257b2f68f85375303e5316db6e039e3/firebase/images/favicon.png"> <link rel="apple-touch-icon" href="https://web.archive.org/web/20210428230634im_/https://www.gstatic.com/devrel-devsite/prod/v03a3d4c6437e99a41d40c6bdaf7de2967257b2f68f85375303e5316db6e039e3/firebase/images/touchicon-180.png"><link rel="canonical" href="https://web.archive.org/web/20210428230634/https://firebase.google.com/docs/android/setup"><link rel="search" type="application/opensearchdescription+xml" title="Firebase" href="https://web.archive.org/web/20210428230634/https://firebase.google.com/s/opensearch.xml"> <title>Add Firebase to your Android project</title> <meta property="og:title" content="Add Firebase to your Android project"> <meta property="og:url" content="https://web.archive.org/web/20210428230634/https://firebase.google.com/docs/android/setup"> <meta property="og:locale" content="en"> <meta name="gtm_var" data-key="docType" data-value="get-started"> </head> <body class="" template="page" theme="firebase-theme" type="article" layout="docs" pending> <devsite-progress type="indeterminate" id="app-progress"></devsite-progress> <section class="devsite-wrapper"><devsite-header> <div class="devsite-header--inner nocontent"> <div class="devsite-top-logo-row-wrapper-wrapper"> <div class="devsite-top-logo-row-wrapper"> <div class="devsite-top-logo-row"> <button type="button" id="devsite-hamburger-menu" class="devsite-header-icon-button button-flat material-icons gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Navigation menu button" visually-hidden aria-label="Open menu"> </button> <div class="devsite-product-name-wrapper"> <a href="/web/20210428230634/https://firebase.google.com/" class="devsite-site-logo-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Site logo" track-type="globalNav" track-name="firebase" track-metadata-position="nav" track-metadata-eventdetail="nav"> <img src="https://web.archive.org/web/20210428230634im_/https://www.gstatic.com/devrel-devsite/prod/v03a3d4c6437e99a41d40c6bdaf7de2967257b2f68f85375303e5316db6e039e3/firebase/images/lockup.png" class="devsite-site-logo" alt="Firebase"> </a> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list"> <li class="devsite-breadcrumb-item "> </li> </ul> </span> </div> <div class="devsite-top-logo-row-middle"> <div class="devsite-header-upper-tabs"> <devsite-tabs class="upper-tabs"> <nav class="devsite-tabs-wrapper" aria-label="Upper tabs"> <tab dropdown> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/products-build" class="gc-analytics-event " track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="products" data-category="Site-Wide Custom Events" data-label="Tab: Products"> Products </a> <a href="#" role="button" aria-haspopup="true" aria-expanded="false" aria-label="Dropdown menu for Products" track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="products" data-category="Site-Wide Custom Events" data-label="Tab: Products" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></a> <div class="devsite-tabs-dropdown" aria-label="submenu" hidden> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/products-build" track-type="navMenu" track-name="Build" track-metadata-position="nav" track-metadata-href="https://firebase.google.com/products-build" tooltip> <div class="devsite-nav-item-title"> Build </div> </a> </li> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/products-release" track-type="navMenu" track-name="Release &amp; Monitor" track-metadata-position="nav" track-metadata-href="https://firebase.google.com/products-release" tooltip> <div class="devsite-nav-item-title"> Release &amp; Monitor </div> </a> </li> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/products-engage" track-type="navMenu" track-name="Engage" track-metadata-position="nav" track-metadata-href="https://firebase.google.com/products-engage" tooltip> <div class="devsite-nav-item-title"> Engage </div> </a> </li> </ul> </div> </div> </div> </tab> <tab> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/use-cases" class="gc-analytics-event " track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="useCases" data-category="Site-Wide Custom Events" data-label="Tab: Use Cases"> Use Cases </a> </tab> <tab> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/pricing" class="gc-analytics-event " track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="pricing" data-category="Site-Wide Custom Events" data-label="Tab: Pricing"> Pricing </a> </tab> <tab dropdown active> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/docs" class="gc-analytics-event " track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="docs" aria-label="Docs, selected" data-category="Site-Wide Custom Events" data-label="Tab: Docs"> Docs </a> <a href="#" role="button" aria-haspopup="true" aria-expanded="false" aria-label="Dropdown menu for Docs" track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="docs" data-category="Site-Wide Custom Events" data-label="Tab: Docs" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></a> <div class="devsite-tabs-dropdown" aria-label="submenu" hidden> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/docs" track-type="navMenu" track-name="Overview" track-metadata-position="nav" track-metadata-href="https://firebase.google.com/docs" tooltip> <div class="devsite-nav-item-title"> Overview </div> </a> </li> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/docs/guides" track-type="navMenu" track-name="Fundamentals" track-metadata-position="nav" track-metadata-href="https://firebase.google.com/docs/guides" tooltip> <div class="devsite-nav-item-title"> Fundamentals </div> </a> </li> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/docs/build" track-type="navMenu" track-name="Build" track-metadata-position="nav" track-metadata-href="https://firebase.google.com/docs/build" tooltip> <div class="devsite-nav-item-title"> Build </div> </a> </li> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/docs/release" track-type="navMenu" track-name="Release &amp; Monitor" track-metadata-position="nav" track-metadata-href="https://firebase.google.com/docs/release" tooltip> <div class="devsite-nav-item-title"> Release &amp; Monitor </div> </a> </li> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/docs/engage" track-type="navMenu" track-name="Engage" track-metadata-position="nav" track-metadata-href="https://firebase.google.com/docs/engage" tooltip> <div class="devsite-nav-item-title"> Engage </div> </a> </li> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/docs/reference" track-type="navMenu" track-name="Reference" track-metadata-position="nav" track-metadata-href="https://firebase.google.com/docs/reference" tooltip> <div class="devsite-nav-item-title"> Reference </div> </a> </li> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/docs/samples" track-type="navMenu" track-name="Samples" track-metadata-position="nav" track-metadata-href="https://firebase.google.com/docs/samples" tooltip> <div class="devsite-nav-item-title"> Samples </div> </a> </li> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/docs/libraries" track-type="navMenu" track-name="Libraries" track-metadata-position="nav" track-metadata-href="https://firebase.google.com/docs/libraries" tooltip> <div class="devsite-nav-item-title"> Libraries </div> </a> </li> </ul> </div> </div> </div> </tab> <tab> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/community" class="gc-analytics-event " track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="community" data-category="Site-Wide Custom Events" data-label="Tab: Community"> Community </a> </tab> <tab> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/support" class="gc-analytics-event " track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="support" data-category="Site-Wide Custom Events" data-label="Tab: Support"> Support </a> </tab> </nav> </devsite-tabs> </div> <devsite-search aria-expanded="false" aria-haspopup="listbox" enable-signin enable-search enable-suggestions enable-query-completion project-name="Firebase" tenant-name="Firebase" role="combobox"> <form class="devsite-search-form" action="https://web.archive.org/web/20210428230634/https://firebase.google.com/s/results" method="GET"> <div class="devsite-search-container"> <div class="devsite-searchbox"> <input aria-activedescendant="" aria-autocomplete="list" aria-label="Search" aria-haspopup="false" aria-multiline="false" aria-label="Search box" autocomplete="off" class="devsite-search-field devsite-search-query" name="q" placeholder="Search" role="combobox" type="text" value=""> <div class="devsite-search-image material-icons" aria-hidden="true"></div> </div> <button type="button" search-open class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Open search"></button> </div> </form> <button type="button" search-close class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Close search"></button> </devsite-search> </div> <devsite-language-selector> <devsite-select class="devsite-language-selector-menu"> <select aria-label="Select your language preference." class="devsite-language-selector-select" name="language" track-name="click" track-type="languageSelector"> <option>Language</option> <option value="en" lang="en" track-metadata-original-language="en" track-metadata-selected-language="en" track-name="changed" track-type="languageSelector"> English </option> <option value="id" lang="id" track-metadata-original-language="en" track-metadata-selected-language="id" track-name="changed" track-type="languageSelector"> Bahasa Indonesia </option> <option value="de" lang="de" track-metadata-original-language="en" track-metadata-selected-language="de" track-name="changed" track-type="languageSelector"> Deutsch </option> <option value="es_419" lang="es_419" track-metadata-original-language="en" track-metadata-selected-language="es_419" track-name="changed" track-type="languageSelector"> Español – América Latina </option> <option value="fr" lang="fr" track-metadata-original-language="en" track-metadata-selected-language="fr" track-name="changed" track-type="languageSelector"> Français </option> <option value="it" lang="it" track-metadata-original-language="en" track-metadata-selected-language="it" track-name="changed" track-type="languageSelector"> Italiano </option> <option value="pl" lang="pl" track-metadata-original-language="en" track-metadata-selected-language="pl" track-name="changed" track-type="languageSelector"> Polski </option> <option value="pt_br" lang="pt_br" track-metadata-original-language="en" track-metadata-selected-language="pt_br" track-name="changed" track-type="languageSelector"> Português – Brasil </option> <option value="vi" lang="vi" track-metadata-original-language="en" track-metadata-selected-language="vi" track-name="changed" track-type="languageSelector"> Tiếng Việt </option> <option value="tr" lang="tr" track-metadata-original-language="en" track-metadata-selected-language="tr" track-name="changed" track-type="languageSelector"> Türkçe </option> <option value="ru" lang="ru" track-metadata-original-language="en" track-metadata-selected-language="ru" track-name="changed" track-type="languageSelector"> Русский </option> <option value="he" lang="he" track-metadata-original-language="en" track-metadata-selected-language="he" track-name="changed" track-type="languageSelector"> עברית&#39; </option> <option value="ar" lang="ar" track-metadata-original-language="en" track-metadata-selected-language="ar" track-name="changed" track-type="languageSelector"> العربيّة </option> <option value="fa" lang="fa" track-metadata-original-language="en" track-metadata-selected-language="fa" track-name="changed" track-type="languageSelector"> فارسی </option> <option value="hi" lang="hi" track-metadata-original-language="en" track-metadata-selected-language="hi" track-name="changed" track-type="languageSelector"> हिंदी </option> <option value="bn" lang="bn" track-metadata-original-language="en" track-metadata-selected-language="bn" track-name="changed" track-type="languageSelector"> বাংলা </option> <option value="th" lang="th" track-metadata-original-language="en" track-metadata-selected-language="th" track-name="changed" track-type="languageSelector"> ภาษาไทย </option> <option value="zh_cn" lang="zh_cn" track-metadata-original-language="en" track-metadata-selected-language="zh_cn" track-name="changed" track-type="languageSelector"> 中文 – 简体 </option> <option value="zh_tw" lang="zh_tw" track-metadata-original-language="en" track-metadata-selected-language="zh_tw" track-name="changed" track-type="languageSelector"> 中文 – 繁體 </option> <option value="ja" lang="ja" track-metadata-original-language="en" track-metadata-selected-language="ja" track-name="changed" track-type="languageSelector"> 日本語 </option> <option value="ko" lang="ko" track-metadata-original-language="en" track-metadata-selected-language="ko" track-name="changed" track-type="languageSelector"> 한국어 </option> </select> </devsite-select> </devsite-language-selector> <a class="devsite-header-link devsite-top-button button gc-analytics-event" href="//web.archive.org/web/20210428230634/https://console.firebase.google.com/" data-category="Site-Wide Custom Events" data-label="Site header link"> Go to console </a> <devsite-user enable-profiles fp-auth id="devsite-user"></devsite-user> </div> </div> </div> <div class="devsite-collapsible-section "> <div class="devsite-header-background"> <div class="devsite-product-id-row"> <div class="devsite-product-description-row"> <ul class="devsite-breadcrumb-list"> <li class="devsite-breadcrumb-item "> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/docs" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Lower Header" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail=""> Documentation </a> </li> </ul> </div> </div> <div class="devsite-doc-set-nav-row"> <devsite-tabs class="lower-tabs"> <nav class="devsite-tabs-wrapper" aria-label="Lower tabs"> <tab> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/docs" class="gc-analytics-event " track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="overview" data-category="Site-Wide Custom Events" data-label="Tab: Overview"> Overview </a> </tab> <tab dropdown active> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/docs/guides" class="gc-analytics-event " track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="fundamentals" aria-label="Fundamentals, selected" data-category="Site-Wide Custom Events" data-label="Tab: Fundamentals"> Fundamentals </a> <a href="#" role="button" aria-haspopup="true" aria-expanded="false" aria-label="Dropdown menu for Fundamentals" track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="fundamentals" data-category="Site-Wide Custom Events" data-label="Tab: Fundamentals" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></a> <div class="devsite-tabs-dropdown" aria-label="submenu" hidden> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/docs/ios/setup" track-type="navMenu" track-name="Add Firebase - iOS" track-metadata-position="nav" track-metadata-href="https://firebase.google.com/docs/ios/setup" tooltip> <div class="devsite-nav-item-title"> Add Firebase - iOS </div> </a> </li> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/docs/android/setup" track-type="navMenu" track-name="Add Firebase - Android" track-metadata-position="nav" track-metadata-href="https://firebase.google.com/docs/android/setup" tooltip> <div class="devsite-nav-item-title"> Add Firebase - Android </div> </a> </li> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/docs/web/setup" track-type="navMenu" track-name="Add Firebase - Web" track-metadata-position="nav" track-metadata-href="https://firebase.google.com/docs/web/setup" tooltip> <div class="devsite-nav-item-title"> Add Firebase - Web </div> </a> </li> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/docs/cpp/setup" track-type="navMenu" track-name="Add Firebase - C++" track-metadata-position="nav" track-metadata-href="https://firebase.google.com/docs/cpp/setup" tooltip> <div class="devsite-nav-item-title"> Add Firebase - C++ </div> </a> </li> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/docs/unity/setup" track-type="navMenu" track-name="Add Firebase - Unity" track-metadata-position="nav" track-metadata-href="https://firebase.google.com/docs/unity/setup" tooltip> <div class="devsite-nav-item-title"> Add Firebase - Unity </div> </a> </li> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/docs/admin/setup" track-type="navMenu" track-name="Add Firebase - Server environments" track-metadata-position="nav" track-metadata-href="https://firebase.google.com/docs/admin/setup" tooltip> <div class="devsite-nav-item-title"> Add Firebase - Server environments </div> </a> </li> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/docs/projects/learn-more" track-type="navMenu" track-name="Manage Projects" track-metadata-position="nav" track-metadata-href="https://firebase.google.com/docs/projects/learn-more" tooltip> <div class="devsite-nav-item-title"> Manage Projects </div> </a> </li> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/docs/emulator-suite" track-type="navMenu" track-name="Use Emulator Suite" track-metadata-position="nav" track-metadata-href="https://firebase.google.com/docs/emulator-suite" tooltip> <div class="devsite-nav-item-title"> Use Emulator Suite </div> </a> </li> </ul> </div> </div> </div> </tab> <tab dropdown> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/docs/build" class="gc-analytics-event " track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="build" data-category="Site-Wide Custom Events" data-label="Tab: Build"> Build </a> <a href="#" role="button" aria-haspopup="true" aria-expanded="false" aria-label="Dropdown menu for Build" track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="build" data-category="Site-Wide Custom Events" data-label="Tab: Build" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></a> <div class="devsite-tabs-dropdown" aria-label="submenu" hidden> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/docs/emulator-suite" track-type="navMenu" track-name="Emulator Suite" track-metadata-position="nav" track-metadata-href="https://firebase.google.com/docs/emulator-suite" tooltip> <div class="devsite-nav-item-title"> Emulator Suite </div> </a> </li> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/docs/auth" track-type="navMenu" track-name="Authentication" track-metadata-position="nav" track-metadata-href="https://firebase.google.com/docs/auth" tooltip> <div class="devsite-nav-item-title"> Authentication </div> </a> </li> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/docs/database" track-type="navMenu" track-name="Realtime Database" track-metadata-position="nav" track-metadata-href="https://firebase.google.com/docs/database" tooltip> <div class="devsite-nav-item-title"> Realtime Database </div> </a> </li> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/docs/firestore" track-type="navMenu" track-name="Firestore" track-metadata-position="nav" track-metadata-href="https://firebase.google.com/docs/firestore" tooltip> <div class="devsite-nav-item-title"> Firestore </div> </a> </li> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/docs/storage" track-type="navMenu" track-name="Storage" track-metadata-position="nav" track-metadata-href="https://firebase.google.com/docs/storage" tooltip> <div class="devsite-nav-item-title"> Storage </div> </a> </li> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/docs/ml" track-type="navMenu" track-name="ML" track-metadata-position="nav" track-metadata-href="https://firebase.google.com/docs/ml" tooltip> <div class="devsite-nav-item-title"> ML </div> </a> </li> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/docs/hosting" track-type="navMenu" track-name="Hosting" track-metadata-position="nav" track-metadata-href="https://firebase.google.com/docs/hosting" tooltip> <div class="devsite-nav-item-title"> Hosting </div> </a> </li> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/docs/functions" track-type="navMenu" track-name="Cloud Functions" track-metadata-position="nav" track-metadata-href="https://firebase.google.com/docs/functions" tooltip> <div class="devsite-nav-item-title"> Cloud Functions </div> </a> </li> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/docs/rules" track-type="navMenu" track-name="Security Rules" track-metadata-position="nav" track-metadata-href="https://firebase.google.com/docs/rules" tooltip> <div class="devsite-nav-item-title"> Security Rules </div> </a> </li> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/docs/extensions" track-type="navMenu" track-name="Extensions" track-metadata-position="nav" track-metadata-href="https://firebase.google.com/docs/extensions" tooltip> <div class="devsite-nav-item-title"> Extensions </div> </a> </li> </ul> </div> </div> </div> </tab> <tab dropdown> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/docs/release" class="gc-analytics-event " track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="release&amp;Monitor" data-category="Site-Wide Custom Events" data-label="Tab: Release &amp; Monitor"> Release &amp; Monitor </a> <a href="#" role="button" aria-haspopup="true" aria-expanded="false" aria-label="Dropdown menu for Release &amp; Monitor" track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="release&amp;Monitor" data-category="Site-Wide Custom Events" data-label="Tab: Release &amp; Monitor" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></a> <div class="devsite-tabs-dropdown" aria-label="submenu" hidden> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/docs/crashlytics" track-type="navMenu" track-name="Crashlytics" track-metadata-position="nav" track-metadata-href="https://firebase.google.com/docs/crashlytics" tooltip> <div class="devsite-nav-item-title"> Crashlytics </div> </a> </li> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/docs/test-lab" track-type="navMenu" track-name="Test Lab" track-metadata-position="nav" track-metadata-href="https://firebase.google.com/docs/test-lab" tooltip> <div class="devsite-nav-item-title"> Test Lab </div> </a> </li> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/docs/app-distribution" track-type="navMenu" track-name="App Distribution" track-metadata-position="nav" track-metadata-href="https://firebase.google.com/docs/app-distribution" tooltip> <div class="devsite-nav-item-title"> App Distribution </div> </a> </li> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/docs/perf-mon" track-type="navMenu" track-name="Performance Monitoring" track-metadata-position="nav" track-metadata-href="https://firebase.google.com/docs/perf-mon" tooltip> <div class="devsite-nav-item-title"> Performance Monitoring </div> </a> </li> </ul> </div> </div> </div> </tab> <tab dropdown> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/docs/engage" class="gc-analytics-event " track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="engage" data-category="Site-Wide Custom Events" data-label="Tab: Engage"> Engage </a> <a href="#" role="button" aria-haspopup="true" aria-expanded="false" aria-label="Dropdown menu for Engage" track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="engage" data-category="Site-Wide Custom Events" data-label="Tab: Engage" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></a> <div class="devsite-tabs-dropdown" aria-label="submenu" hidden> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/docs/analytics" track-type="navMenu" track-name="Analytics" track-metadata-position="nav" track-metadata-href="https://firebase.google.com/docs/analytics" tooltip> <div class="devsite-nav-item-title"> Analytics </div> </a> </li> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/docs/remote-config" track-type="navMenu" track-name="Remote Config" track-metadata-position="nav" track-metadata-href="https://firebase.google.com/docs/remote-config" tooltip> <div class="devsite-nav-item-title"> Remote Config </div> </a> </li> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/docs/predictions" track-type="navMenu" track-name="Predictions" track-metadata-position="nav" track-metadata-href="https://firebase.google.com/docs/predictions" tooltip> <div class="devsite-nav-item-title"> Predictions </div> </a> </li> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/docs/ab-testing" track-type="navMenu" track-name="A/B Testing" track-metadata-position="nav" track-metadata-href="https://firebase.google.com/docs/ab-testing" tooltip> <div class="devsite-nav-item-title"> A/B Testing </div> </a> </li> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/docs/cloud-messaging" track-type="navMenu" track-name="Cloud Messaging" track-metadata-position="nav" track-metadata-href="https://firebase.google.com/docs/cloud-messaging" tooltip> <div class="devsite-nav-item-title"> Cloud Messaging </div> </a> </li> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/docs/in-app-messaging" track-type="navMenu" track-name="In-App Messaging" track-metadata-position="nav" track-metadata-href="https://firebase.google.com/docs/in-app-messaging" tooltip> <div class="devsite-nav-item-title"> In-App Messaging </div> </a> </li> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/docs/dynamic-links" track-type="navMenu" track-name="Dynamic Links" track-metadata-position="nav" track-metadata-href="https://firebase.google.com/docs/dynamic-links" tooltip> <div class="devsite-nav-item-title"> Dynamic Links </div> </a> </li> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/docs/admob" track-type="navMenu" track-name="Google AdMob" track-metadata-position="nav" track-metadata-href="https://firebase.google.com/docs/admob" tooltip> <div class="devsite-nav-item-title"> Google AdMob </div> </a> </li> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/docs/ads" track-type="navMenu" track-name="Google Ads" track-metadata-position="nav" track-metadata-href="https://firebase.google.com/docs/ads" tooltip> <div class="devsite-nav-item-title"> Google Ads </div> </a> </li> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/docs/app-indexing" track-type="navMenu" track-name="App Indexing" track-metadata-position="nav" track-metadata-href="https://firebase.google.com/docs/app-indexing" tooltip> <div class="devsite-nav-item-title"> App Indexing </div> </a> </li> </ul> </div> </div> </div> </tab> <tab> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/docs/reference" class="gc-analytics-event " track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="reference" data-category="Site-Wide Custom Events" data-label="Tab: Reference"> Reference </a> </tab> <tab> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/docs/samples" class="gc-analytics-event " track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="samples" data-category="Site-Wide Custom Events" data-label="Tab: Samples"> Samples </a> </tab> <tab> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/docs/libraries" class="gc-analytics-event " track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="libraries" data-category="Site-Wide Custom Events" data-label="Tab: Libraries"> Libraries </a> </tab> </nav> </devsite-tabs> </div> </div> </div> </div> </devsite-header> <devsite-book-nav scrollbars> <nav class="devsite-book-nav devsite-nav nocontent" aria-label="Side menu"> <div class="devsite-mobile-header"> <button type="button" id="devsite-close-nav" class="devsite-header-icon-button button-flat material-icons gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Close navigation" aria-label="Close navigation"> </button> <div class="devsite-product-name-wrapper"> <a href="/web/20210428230634/https://firebase.google.com/" class="devsite-site-logo-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Site logo" track-type="globalNav" track-name="firebase" track-metadata-position="nav" track-metadata-eventdetail="nav"> <img src="https://web.archive.org/web/20210428230634im_/https://www.gstatic.com/devrel-devsite/prod/v03a3d4c6437e99a41d40c6bdaf7de2967257b2f68f85375303e5316db6e039e3/firebase/images/lockup.png" class="devsite-site-logo" alt="Firebase"> </a> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list"> <li class="devsite-breadcrumb-item "> </li> </ul> </span> </div> </div> <div class="devsite-book-nav-wrapper"> <div class="devsite-mobile-nav-top"> <ul class="devsite-nav-list"> <li class="devsite-nav-item"> <a href="/web/20210428230634/https://firebase.google.com/products-build" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Products" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="products"> <span class="devsite-nav-text" tooltip> Products </span> <span class="devsite-nav-icon material-icons" data-icon="forward"> </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu "> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip> <span class="devsite-nav-text" tooltip menu="Products"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Products"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/web/20210428230634/https://firebase.google.com/use-cases" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Use Cases" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="useCases"> <span class="devsite-nav-text" tooltip> Use Cases </span> <span class="devsite-nav-icon material-icons" data-icon="forward"> </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210428230634/https://firebase.google.com/pricing" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Pricing" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="pricing"> <span class="devsite-nav-text" tooltip> Pricing </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210428230634/https://firebase.google.com/docs" class="devsite-nav-title gc-analytics-event devsite-nav-active" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Docs" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="docs"> <span class="devsite-nav-text" tooltip> Docs </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu "> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip> <span class="devsite-nav-text" tooltip menu="Docs"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Docs"> </span> </span> </li> </ul> <ul class="devsite-nav-responsive-tabs"> <li class="devsite-nav-item"> <a href="/web/20210428230634/https://firebase.google.com/docs" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Overview" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="overview"> <span class="devsite-nav-text" tooltip> Overview </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210428230634/https://firebase.google.com/docs/guides" class="devsite-nav-title gc-analytics-event devsite-nav-has-children devsite-nav-active" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Fundamentals" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="fundamentals"> <span class="devsite-nav-text" tooltip menu="_book"> Fundamentals </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="_book"> </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu devsite-lower-tab-item"> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip> <span class="devsite-nav-text" tooltip menu="Fundamentals"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Fundamentals"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/web/20210428230634/https://firebase.google.com/docs/build" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Build" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="build"> <span class="devsite-nav-text" tooltip> Build </span> <span class="devsite-nav-icon material-icons" data-icon="forward"> </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu devsite-lower-tab-item"> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip> <span class="devsite-nav-text" tooltip menu="Build"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Build"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/web/20210428230634/https://firebase.google.com/docs/release" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Release &amp; Monitor" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="release&amp;Monitor"> <span class="devsite-nav-text" tooltip> Release &amp; Monitor </span> <span class="devsite-nav-icon material-icons" data-icon="forward"> </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu devsite-lower-tab-item"> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip> <span class="devsite-nav-text" tooltip menu="Release &amp; Monitor"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Release &amp; Monitor"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/web/20210428230634/https://firebase.google.com/docs/engage" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Engage" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="engage"> <span class="devsite-nav-text" tooltip> Engage </span> <span class="devsite-nav-icon material-icons" data-icon="forward"> </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu devsite-lower-tab-item"> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip> <span class="devsite-nav-text" tooltip menu="Engage"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Engage"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/web/20210428230634/https://firebase.google.com/docs/reference" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Reference" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="reference"> <span class="devsite-nav-text" tooltip> Reference </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210428230634/https://firebase.google.com/docs/samples" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Samples" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="samples"> <span class="devsite-nav-text" tooltip> Samples </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210428230634/https://firebase.google.com/docs/libraries" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Libraries" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="libraries"> <span class="devsite-nav-text" tooltip> Libraries </span> </a> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/web/20210428230634/https://firebase.google.com/community" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Community" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="community"> <span class="devsite-nav-text" tooltip> Community </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210428230634/https://firebase.google.com/support" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Support" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="support"> <span class="devsite-nav-text" tooltip> Support </span> </a> </li> <li class="devsite-nav-item"> <a href="//web.archive.org/web/20210428230634/https://console.firebase.google.com/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Go to console" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="goToConsole"> <span class="devsite-nav-text" tooltip> Go to console </span> </a> </li> </ul> </div> <div class="devsite-mobile-nav-bottom" role="navigation"> <ul class="devsite-nav-list" menu="_book"> <li class="devsite-nav-item"><a href="/web/20210428230634/https://firebase.google.com/docs/guides" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Fundamentals</span></a></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-accordion"><devsite-expandable-nav collapsed> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"><span class="devsite-nav-text" tooltip>Get started with Firebase</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"><span class="devsite-nav-text" tooltip>Add Firebase to an app</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210428230634/https://firebase.google.com/docs/ios/setup" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>iOS</span></a></li><li class="devsite-nav-item"><a href="/web/20210428230634/https://firebase.google.com/docs/android/setup" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Android</span></a></li><li class="devsite-nav-item"><a href="/web/20210428230634/https://firebase.google.com/docs/web/setup" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Web</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"><span class="devsite-nav-text" tooltip>Add Firebase to a game</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210428230634/https://firebase.google.com/docs/games/setup" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210428230634/https://firebase.google.com/docs/cpp/setup" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>C++</span></a></li><li class="devsite-nav-item"><a href="/web/20210428230634/https://firebase.google.com/docs/unity/setup" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Unity</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210428230634/https://firebase.google.com/docs/admin/setup" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Add Firebase to a server</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"><span class="devsite-nav-text" tooltip>Use Firebase with a framework</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210428230634/https://firebase.google.com/docs/flutter/setup" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Flutter</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item devsite-nav-beta"><a href="/web/20210428230634/https://firebase.google.com/docs/projects/api/workflow_set-up-and-manage-project" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Set up projects programmatically</span><span class="devsite-nav-icon material-icons" data-icon="beta" data-title="Beta" aria-hidden="true"></span></a></li></ul></devsite-expandable-nav></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-accordion"><devsite-expandable-nav collapsed> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"><span class="devsite-nav-text" tooltip>Manage your Firebase projects</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210428230634/https://firebase.google.com/docs/projects/learn-more" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Understand Firebase projects</span></a></li><li class="devsite-nav-item"><a href="/web/20210428230634/https://firebase.google.com/docs/projects/locations" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Select locations for your project</span></a></li><li class="devsite-nav-item"><a href="/web/20210428230634/https://firebase.google.com/docs/projects/multiprojects" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Configure multiple projects</span></a></li><li class="devsite-nav-item"><a href="/web/20210428230634/https://firebase.google.com/docs/projects/api-keys" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Learn about API keys for Firebase</span></a></li><li class="devsite-nav-item"><a href="/web/20210428230634/https://firebase.google.com/docs/projects/pwa" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Use Firebase in PWAs</span></a></li><li class="devsite-nav-item devsite-nav-beta"><a href="/web/20210428230634/https://firebase.google.com/docs/projects/bigquery-export" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Export project data to BigQuery</span><span class="devsite-nav-icon material-icons" data-icon="beta" data-title="Beta" aria-hidden="true"></span></a></li><li class="devsite-nav-item"><a href="/web/20210428230634/https://firebase.google.com/docs/projects/manage-installations" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Manage Firebase installations</span></a></li><li class="devsite-nav-item devsite-nav-beta"><a href="/web/20210428230634/https://firebase.google.com/docs/projects/import-segments" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Import segments</span><span class="devsite-nav-icon material-icons" data-icon="beta" data-title="Beta" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"><span class="devsite-nav-text" tooltip>Manage projects programmatically</span></div></li><li class="devsite-nav-item devsite-nav-beta"><a href="/web/20210428230634/https://firebase.google.com/docs/projects/api/workflow_set-up-and-manage-project" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Use the REST API</span><span class="devsite-nav-icon material-icons" data-icon="beta" data-title="Beta" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"><span class="devsite-nav-text" tooltip>Use the Admin SDK</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210428230634/https://firebase.google.com/docs/reference/admin/node/admin.projectManagement" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Node.js</span></a></li><li class="devsite-nav-item"><a href="/web/20210428230634/https://firebase.google.com/docs/reference/admin/java/reference/com/google/firebase/projectmanagement/package-summary" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Java</span></a></li><li class="devsite-nav-item"><a href="/web/20210428230634/https://firebase.google.com/docs/reference/admin/python/firebase_admin.project_management" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Python</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210428230634/https://firebase.google.com/docs/projects/provisioning/configure-oauth" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Configure OAuth identity providers for Firebase Auth</span></a></li><li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"><span class="devsite-nav-text" tooltip>Manage project access (IAM)</span></div></li><li class="devsite-nav-item"><a href="/web/20210428230634/https://firebase.google.com/docs/projects/iam/overview" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"><span class="devsite-nav-text" tooltip>Roles</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210428230634/https://firebase.google.com/docs/projects/iam/roles" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210428230634/https://firebase.google.com/docs/projects/iam/roles-basic" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Owner, Editor, Viewer roles</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"><span class="devsite-nav-text" tooltip>Firebase predefined roles</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210428230634/https://firebase.google.com/docs/projects/iam/roles-predefined" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/web/20210428230634/https://firebase.google.com/docs/projects/iam/roles-predefined-all-products" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Firebase-level roles</span></a></li><li class="devsite-nav-item"><a href="/web/20210428230634/https://firebase.google.com/docs/projects/iam/roles-predefined-category" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Product-category roles</span></a></li><li class="devsite-nav-item"><a href="/web/20210428230634/https://firebase.google.com/docs/projects/iam/roles-predefined-product" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Product-level roles</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210428230634/https://firebase.google.com/docs/projects/iam/roles-custom" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Custom roles</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210428230634/https://firebase.google.com/docs/projects/iam/permissions" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Permissions</span></a></li></ul></devsite-expandable-nav></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-accordion"><devsite-expandable-nav collapsed> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"><span class="devsite-nav-text" tooltip>Platforms and frameworks</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"><span class="devsite-nav-text" tooltip>iOS</span></div></li><li class="devsite-nav-item"><a href="/web/20210428230634/https://firebase.google.com/docs/ios/learn-more" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Learn about iOS + Firebase</span></a></li><li class="devsite-nav-item"><a href="/web/20210428230634/https://firebase.google.com/docs/ios/link-firebase-static-dynamic" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Link Firebase dependencies statically or dynamically</span></a></li><li class="devsite-nav-item"><a href="/web/20210428230634/https://firebase.google.com/docs/ios/app-store-data-collection" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Prepare for Apple App Store data disclosure requirements</span></a></li><li class="devsite-nav-item"><a href="/web/20210428230634/https://firebase.google.com/docs/ios/supporting-ios-14" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Supporting iOS 14</span></a></li><li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"><span class="devsite-nav-text" tooltip>Android</span></div></li><li class="devsite-nav-item"><a href="/web/20210428230634/https://firebase.google.com/docs/android/learn-more" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Learn about Android + Firebase</span></a></li><li class="devsite-nav-item"><a href="/web/20210428230634/https://firebase.google.com/docs/android/android-play-services" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Dependencies of Firebase Android SDKs on Google Play services</span></a></li><li class="devsite-nav-item"><a href="/web/20210428230634/https://firebase.google.com/docs/android/integrate-play-games" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Integrate with your Play Games Services project</span></a></li><li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"><span class="devsite-nav-text" tooltip>Web</span></div></li><li class="devsite-nav-item"><a href="/web/20210428230634/https://firebase.google.com/docs/web/learn-more" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Learn about Web + Firebase</span></a></li><li class="devsite-nav-item devsite-nav-beta"><a href="/web/20210428230634/https://firebase.google.com/docs/web/modular-upgrade" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Upgrade to the v9 modular SDK</span><span class="devsite-nav-icon material-icons" data-icon="beta" data-title="Beta" aria-hidden="true"></span></a></li><li class="devsite-nav-item"><a href="/web/20210428230634/https://firebase.google.com/docs/web/environments-js-sdk" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Supported environments for the Firebase JS SDK</span></a></li><li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"><span class="devsite-nav-text" tooltip>Unity</span></div></li><li class="devsite-nav-item"><a href="/web/20210428230634/https://firebase.google.com/docs/unity/setup-alternative" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Additional installation options</span></a></li></ul></devsite-expandable-nav></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-accordion devsite-nav-beta"><devsite-expandable-nav collapsed> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"><span class="devsite-nav-text" tooltip>Prototype and test with Emulator Suite</span><span class="devsite-nav-icon material-icons" data-icon="beta" data-title="Beta" aria-hidden="true"></span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210428230634/https://firebase.google.com/docs/emulator-suite" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Introduction</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><devsite-expandable-nav collapsed> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"><span class="devsite-nav-text" tooltip>Connect your app and prototype</span></div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/web/20210428230634/https://firebase.google.com/docs/emulator-suite/connect_and_prototype" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Get started</span></a></li><li class="devsite-nav-item"><a href="/web/20210428230634/https://firebase.google.com/docs/emulator-suite/connect_auth" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Connect to the Authentication emulator</span></a></li><li class="devsite-nav-item"><a href="/web/20210428230634/https://firebase.google.com/docs/emulator-suite/connect_rtdb" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Connect to the Realtime Database emulator</span></a></li><li class="devsite-nav-item"><a href="/web/20210428230634/https://firebase.google.com/docs/emulator-suite/connect_firestore" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Connect to the Cloud Firestore emulator</span></a></li><li class="devsite-nav-item"><a href="/web/20210428230634/https://firebase.google.com/docs/emulator-suite/connect_functions" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Connect to the Cloud Functions emulator</span></a></li></ul></devsite-expandable-nav></li><li class="devsite-nav-item"><a href="/web/20210428230634/https://firebase.google.com/docs/emulator-suite/install_and_configure" class="devsite-nav-title"><span class="devsite-nav-text" tooltip>Install, configure and integrate</span></a></li></ul></devsite-expandable-nav></li> </ul> <ul class="devsite-nav-list" menu="Products" aria-label="Side menu" hidden> <li class="devsite-nav-item"> <a href="/web/20210428230634/https://firebase.google.com/products-build" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Build" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="build"> <span class="devsite-nav-text" tooltip> Build </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210428230634/https://firebase.google.com/products-release" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Release &amp; Monitor" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="release&amp;Monitor"> <span class="devsite-nav-text" tooltip> Release &amp; Monitor </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210428230634/https://firebase.google.com/products-engage" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Engage" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="engage"> <span class="devsite-nav-text" tooltip> Engage </span> </a> </li> </ul> <ul class="devsite-nav-list" menu="Docs" aria-label="Side menu" hidden> <li class="devsite-nav-item"> <a href="/web/20210428230634/https://firebase.google.com/docs" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Overview" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="overview"> <span class="devsite-nav-text" tooltip> Overview </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210428230634/https://firebase.google.com/docs/guides" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Fundamentals" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="fundamentals"> <span class="devsite-nav-text" tooltip> Fundamentals </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210428230634/https://firebase.google.com/docs/build" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Build" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="build"> <span class="devsite-nav-text" tooltip> Build </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210428230634/https://firebase.google.com/docs/release" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Release &amp; Monitor" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="release&amp;Monitor"> <span class="devsite-nav-text" tooltip> Release &amp; Monitor </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210428230634/https://firebase.google.com/docs/engage" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Engage" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="engage"> <span class="devsite-nav-text" tooltip> Engage </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210428230634/https://firebase.google.com/docs/reference" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Reference" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="reference"> <span class="devsite-nav-text" tooltip> Reference </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210428230634/https://firebase.google.com/docs/samples" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Samples" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="samples"> <span class="devsite-nav-text" tooltip> Samples </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210428230634/https://firebase.google.com/docs/libraries" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Libraries" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="libraries"> <span class="devsite-nav-text" tooltip> Libraries </span> </a> </li> </ul> <ul class="devsite-nav-list" menu="Fundamentals" aria-label="Side menu" hidden> <li class="devsite-nav-item"> <a href="/web/20210428230634/https://firebase.google.com/docs/ios/setup" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Add Firebase - iOS" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="addFirebase-IOS"> <span class="devsite-nav-text" tooltip> Add Firebase - iOS </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210428230634/https://firebase.google.com/docs/android/setup" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Add Firebase - Android" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="addFirebase-Android"> <span class="devsite-nav-text" tooltip> Add Firebase - Android </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210428230634/https://firebase.google.com/docs/web/setup" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Add Firebase - Web" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="addFirebase-Web"> <span class="devsite-nav-text" tooltip> Add Firebase - Web </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210428230634/https://firebase.google.com/docs/cpp/setup" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Add Firebase - C++" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="addFirebase-C++"> <span class="devsite-nav-text" tooltip> Add Firebase - C++ </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210428230634/https://firebase.google.com/docs/unity/setup" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Add Firebase - Unity" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="addFirebase-Unity"> <span class="devsite-nav-text" tooltip> Add Firebase - Unity </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210428230634/https://firebase.google.com/docs/admin/setup" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Add Firebase - Server environments" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="addFirebase-ServerEnvironments"> <span class="devsite-nav-text" tooltip> Add Firebase - Server environments </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210428230634/https://firebase.google.com/docs/projects/learn-more" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Manage Projects" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="manageProjects"> <span class="devsite-nav-text" tooltip> Manage Projects </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210428230634/https://firebase.google.com/docs/emulator-suite" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Use Emulator Suite" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="useEmulatorSuite"> <span class="devsite-nav-text" tooltip> Use Emulator Suite </span> </a> </li> </ul> <ul class="devsite-nav-list" menu="Build" aria-label="Side menu" hidden> <li class="devsite-nav-item"> <a href="/web/20210428230634/https://firebase.google.com/docs/emulator-suite" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Emulator Suite" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="emulatorSuite"> <span class="devsite-nav-text" tooltip> Emulator Suite </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210428230634/https://firebase.google.com/docs/auth" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Authentication" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="authentication"> <span class="devsite-nav-text" tooltip> Authentication </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210428230634/https://firebase.google.com/docs/database" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Realtime Database" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="realtimeDatabase"> <span class="devsite-nav-text" tooltip> Realtime Database </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210428230634/https://firebase.google.com/docs/firestore" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Firestore" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="firestore"> <span class="devsite-nav-text" tooltip> Firestore </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210428230634/https://firebase.google.com/docs/storage" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Storage" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="storage"> <span class="devsite-nav-text" tooltip> Storage </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210428230634/https://firebase.google.com/docs/ml" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: ML" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="mL"> <span class="devsite-nav-text" tooltip> ML </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210428230634/https://firebase.google.com/docs/hosting" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Hosting" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="hosting"> <span class="devsite-nav-text" tooltip> Hosting </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210428230634/https://firebase.google.com/docs/functions" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Cloud Functions" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="cloudFunctions"> <span class="devsite-nav-text" tooltip> Cloud Functions </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210428230634/https://firebase.google.com/docs/rules" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Security Rules" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="securityRules"> <span class="devsite-nav-text" tooltip> Security Rules </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210428230634/https://firebase.google.com/docs/extensions" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Extensions" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="extensions"> <span class="devsite-nav-text" tooltip> Extensions </span> </a> </li> </ul> <ul class="devsite-nav-list" menu="Release &amp; Monitor" aria-label="Side menu" hidden> <li class="devsite-nav-item"> <a href="/web/20210428230634/https://firebase.google.com/docs/crashlytics" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Crashlytics" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="crashlytics"> <span class="devsite-nav-text" tooltip> Crashlytics </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210428230634/https://firebase.google.com/docs/test-lab" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Test Lab" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="testLab"> <span class="devsite-nav-text" tooltip> Test Lab </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210428230634/https://firebase.google.com/docs/app-distribution" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: App Distribution" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="appDistribution"> <span class="devsite-nav-text" tooltip> App Distribution </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210428230634/https://firebase.google.com/docs/perf-mon" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Performance Monitoring" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="performanceMonitoring"> <span class="devsite-nav-text" tooltip> Performance Monitoring </span> </a> </li> </ul> <ul class="devsite-nav-list" menu="Engage" aria-label="Side menu" hidden> <li class="devsite-nav-item"> <a href="/web/20210428230634/https://firebase.google.com/docs/analytics" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Analytics" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="analytics"> <span class="devsite-nav-text" tooltip> Analytics </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210428230634/https://firebase.google.com/docs/remote-config" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Remote Config" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="remoteConfig"> <span class="devsite-nav-text" tooltip> Remote Config </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210428230634/https://firebase.google.com/docs/predictions" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Predictions" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="predictions"> <span class="devsite-nav-text" tooltip> Predictions </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210428230634/https://firebase.google.com/docs/ab-testing" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: A/B Testing" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="a/BTesting"> <span class="devsite-nav-text" tooltip> A/B Testing </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210428230634/https://firebase.google.com/docs/cloud-messaging" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Cloud Messaging" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="cloudMessaging"> <span class="devsite-nav-text" tooltip> Cloud Messaging </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210428230634/https://firebase.google.com/docs/in-app-messaging" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: In-App Messaging" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="in-AppMessaging"> <span class="devsite-nav-text" tooltip> In-App Messaging </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210428230634/https://firebase.google.com/docs/dynamic-links" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Dynamic Links" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="dynamicLinks"> <span class="devsite-nav-text" tooltip> Dynamic Links </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210428230634/https://firebase.google.com/docs/admob" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google AdMob" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="googleAdMob"> <span class="devsite-nav-text" tooltip> Google AdMob </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210428230634/https://firebase.google.com/docs/ads" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Ads" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="googleAds"> <span class="devsite-nav-text" tooltip> Google Ads </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210428230634/https://firebase.google.com/docs/app-indexing" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: App Indexing" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="appIndexing"> <span class="devsite-nav-text" tooltip> App Indexing </span> </a> </li> </ul> </div> </div> </nav> </devsite-book-nav> <section id="gc-wrapper"> <main role="main" class="devsite-main-content" has-book-nav has-toc> <devsite-toc class="devsite-nav"></devsite-toc> <devsite-content> <article class="devsite-article"><style> /* Styles inlined from /styles/docs.css */ .center { text-align: center } /* Used in AdMob code examples */ .oldcode { opacity: .40; /* IE 8 */ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=40)"; filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=40); /* IE <= 7 */ filter:alpha(opacity=40); } .newcode { font-weight: bold; } /* Device Screenshots */ .deviceshot { max-width: 700px; max-height: 400px; } /* Start Changelog styles */ .badge { position: relative; top: -3px; border-radius: 16px; display: inline-block; width: 90px; height: 32px; line-height: 32px; margin-right: 10px; text-transform: uppercase; font-size: 13px; font-weight: 700; text-align: center; } /* Colours for each type of changelog entry. */ /* TODO: Change the colours to match the site colour scheme */ .badge-changed { background-color: #F4B400; color: #fff; } .badge-fixed { background-color: #4285F4; color: #fff; } .badge-important { background-color: #DB4437; color: #fff; } .badge-feature { background-color: #0F9D58; color: #fff; } .badge-deprecated { background-color: #DB4437; color: #fff; } .badge-issue { background-color: #DB4437; color: #fff; } .changelog > ul { padding-left: 0; } .changelog > ul > li { list-style-type: none; margin-bottom: 22px; } .firebase-support-release-page .changelog > ul { list-style-type: none; padding-left: 110px; } .firebase-release-roundup .changelog > ul { list-style-type: disc outside; padding-left: 40px; } .firebase-release-roundup .changelog > ul > li { list-style-type: disc outside; margin-bottom: 12px; } .release-changed::before, .release-feature::before, .release-fixed::before, .release-issue::before, .release-deprecated::before, .release-removed::before, .release-unchanged::before, .release-rules::before, .release-android::before, .release-android-bom::before, .release-ios::before, .release-admin::before, .release-cpp::before, .release-unity::before, .release-functions::before, .release-javascript::before { display: block; float: left; color: white; width: 100px; height: 32px; margin-left: -110px; margin-right: 10px; margin-top: -5px; padding-top: 4px; text-transform: uppercase; font-size: 13px; font-weight: 700; text-align: center; border-radius: 16px; } .release-changed::before { content: "changed"; background-color: #F4B400; } .release-feature::before { content: "feature"; background-color: #0F9D58; } .release-fixed::before { content: "fixed"; background-color: #4285F4; } .release-issue::before { content: "issue"; background-color: #DB4437; } .release-deprecated::before { content: "deprecated"; background-color: #E65100; } .release-removed::before { content: "removed"; background-color: #546E7A; } .release-unchanged::before { content: "no change"; background-color: #CCCCCC; } .release-android::before { content: "android"; background-color: #A4C639; } .release-android-bom::before { content: "android bom"; background-color: #A4C639; } .release-ios::before { text-transform: none; content: "iOS"; background-color: #007aff; } .release-admin::before { content: "admin"; background-color: #039BE5; } .release-cpp::before { content: "c++"; background-color: #FF8A65; } .release-unity::before { content: "unity"; background-color: #00cccc; } .release-functions::before { content: "functions"; background-color: #2C384A; } .release-javascript::before { content: "javascript"; background-color: #7e57c2; } .release-rules::before { content: "rules"; background-color: #1B3A57; } /* End Changelog styles */ /* Docs Overview page styles */ .docs-android, .docs-ios, .docs-web, .docs-cpp, .docs-unity { height: 64px; width: 64px; margin: 10px 16px 0 -16px; } .firebase-docs-overview .devsite-landing-row h2 { margin: 80px 0 -40px; } .devsite-landing-row-3-up .docs-landing-row-item { width: calc((100% - 80px)/2); display: inline-block; } .docs-landing-icon { font-size: 48px; height: 48px; margin: 11px; width: 48px; } .firebase-reference-list { display: -ms-flex; display: flex; -ms-flex-wrap: wrap; flex-wrap: wrap; list-style: none; margin: 0 0 40px; padding: 0; } .firebase-reference-list-item { -ms-flex: 0 0 50%; flex: 0 0 50%; margin: 40px 0 0; padding: 0; } .firebase-reference-list-item > a { -ms-flex-align: center; align-items: center; display: -ms-flex; display: flex; } .firebase-reference-list-item > a:not(:hover) h3 { color: #424242; } .firebase-reference-list-item > a:not(:hover) li, .firebase-reference-list-item > a:not(:hover) p { color: #757575; } .firebase-reference-list-item .docs-landing-icon { -ms-flex-align: center; align-items: center; background-color: #f5f5f5; border-radius: 50%; -ms-flex: 0 0 88px; flex: 0 0 88px; height: 88px; -ms-justify-content: center; justify-content: center; margin: 0 16px 0 0; padding: 20px; } .firebase-reference-list-item h3 { -ms-flex: 0 0 auto; flex: 0 0 auto; font-size: 18px; line-height: 28px; margin: 0; } .firebase-reference-list-item ul { list-style: none; padding: 0; } .docs-android, .docs-ios, .docs-web, .docs-cpp, .docs-unity { height: 88px; width: auto; } .firebase-reference-list-item.docs-android .docs-landing-icon { color: #00bfa5; } .firebase-reference-list-item.docs-cpp .docs-landing-icon { color: #fd8c09; } .firebase-reference-list-item.docs-ios .docs-landing-icon { color: #16aaca; } .firebase-reference-list-item.docs-unity .docs-landing-icon { color: #000000; } .firebase-reference-list-item.docs-web .docs-landing-icon { color: #c52062; } .firebase-reference-list-item.docs-http .docs-landing-icon { color: #3F51B5; } @media (max-width: 1000px) { .firebase-reference-list { -ms-flex-direction: column; flex-direction: column; } } /* end Docs Overview page styles */ /* Full-page platform selector for Crashlytics docs */ /* Note: h3 in selector content must include hide-from-toc */ .full-page-selector, .full-page-selector-content { border: none; font-size: inherit; } .full-page-selector > .kd-buttonbar { margin: 32px 0px; } .full-page-selector > section { display: none; } .full-page-selector-content > .selected { padding: 0; font-size: inherit; } .full-page-selector-content > .kd-buttonbar { display: none; } .select-page { display: none; } .select-page + .ds-selector-tabs, .after-selection ~ .ds-selector-tabs { border: none; font-size: inherit; } .select-page + .ds-selector-tabs > .kd-buttonbar { margin: 32px 0px; } .select-page + .ds-selector-tabs > section { display: none; } .after-selection ~ .ds-selector-tabs > .selected { padding: 0; font-size: inherit; } .after-selection ~ .ds-selector-tabs > section p { line-height: 24px; } .after-selection ~ .ds-selector-tabs > .kd-buttonbar { display: none; } /* End full-page platform selector */ /* Custom beta and alpha indicators (v1 format, followed by v2 format) */ .devsite-nav-alpha .devsite-nav-icon::before, .devsite-nav-icon[data-icon="alpha"]::before { content: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHZpZXdCb3g9IjAgMCAxOCAxOCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTMuMjA2IDE1YTU0LjIxNCA1NC4yMTQgMCAwIDEtLjkyLTIuNTc4bC0uMTQtLjQxNGE4MS43NiA4MS43NiAwIDAgMC0uMTM2LS40MDJDMTAuODUgMTMuNjcyIDkuNTYyIDE0LjUgNy41IDE0LjUgNC44MSAxNC41IDMgMTIuNjE2IDMgOXMxLjgxLTUuNSA0LjUtNS41YzIuMDYyIDAgMy4zNS44MjggNC41MSAyLjg5NGwuMTM3LS40MDIuMTM5LS40MTRjLjM4LTEuMTI3LjY1My0xLjkwMi45Mi0yLjU3OGgyLjE2NmMtLjM2NC44My0uNjcyIDEuNjgtMS4xOSAzLjIxN2wtLjE0LjQxM0E1Ny45OSA1Ny45OSAwIDAgMSAxMy4xOTQgOWMuMjc1LjcxLjU1NCAxLjQ5OC44NDggMi4zN2wuMTQuNDEzYy41MTggMS41MzguODI2IDIuMzg3IDEuMTkgMy4yMTdoLTIuMTY2ek03LjUgNS41QzUuOTMyIDUuNSA1IDYuNDcgNSA5YzAgMi41My45MzIgMy41IDIuNSAzLjUgMS40OTcgMCAyLjQ0NC0uOTE3IDMuNTM1LTMuNUM5Ljk0NCA2LjQxNyA4Ljk5NyA1LjUgNy41IDUuNXoiIGZpbGw9InJnYmEoMCwwLDAsLjM4KSIgZmlsbC1ydWxlPSJub256ZXJvIi8+PC9zdmc+'); } .devsite-nav-beta .devsite-nav-icon::before, .devsite-nav-icon[data-icon="beta"]::before { content: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHZpZXdCb3g9IjAgMCAxOCAxOCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTIuMjM2IDcuNjgzQTQgNCAwIDAgMSAxMCAxNUg3djJINVY0YTIgMiAwIDAgMSAyLTJoMi41YTMuNSAzLjUgMCAwIDEgMi43MzYgNS42ODN6TTcgMTNoM2EyIDIgMCAxIDAgMC00SDd2NHptMC02aDIuNWExLjUgMS41IDAgMCAwIDAtM0g3djN6IiBmaWxsPSJyZ2JhKDAsMCwwLC4zOCkiIGZpbGwtcnVsZT0ibm9uemVybyIvPjwvc3ZnPg=='); } .firebase-platform-label { font: 500 12px/24px Roboto,sans-serif; } /* Full-page platform selector dropdown */ /* Note: use menu variables in _elements.html file */ .full-page-selector-dropdown { border: none; position: relative; float: left; display: inline-block; } .full-page-selector-dropdown > .ds-selector-tabs { display: none; position: absolute; min-width: 160px; z-index: 1; } .full-page-selector-dropdown:hover .ds-selector-tabs { display: block; margin: 0; } .full-page-selector-dropdown:hover .kd-tabbutton { display: block; border: none; height: inherit; text-align: left; } .full-page-selector-dropdown:hover .kd-buttonbar { border: none; height: inherit; } .full-page-selector-dropdown h3:hover { color: white; background-color: #039be5; } .full-page-selector-dropdown:hover .devsite-overflow-menu-button { display: none; } </style> <div class="devsite-banner devsite-banner-announcement"> <div class="devsite-banner-message"> <div class="devsite-banner-message-text"> <style> .devsite-banner-announcement { background: #e1f3fc; color: #0288d1; font-weight: 500; } .devsite-banner-announcement a { color: #0288d1; font-weight: 700; } .devsite-banner-announcement a:link, .devsite-banner-announcement a:visited { background: 0; } .devsite-banner-announcement a:hover, .devsite-banner-announcement a:focus { text-decoration: none; } .devsite-banner-announcement .devsite-banner-message-text { margin: 0 auto; } </style> Save the date - Google I/O returns May 18-20. Register to get the most out of the digital experience: Build your schedule, reserve space, participate in Q&As;, earn Google Developer profile badges, and more. <a href="https://web.archive.org/web/20210428230634/https://events.google.com/io/?utm_source=firebase&amp;utm_medium=embedded_marketing&amp;utm_campaign=svd-2021-fb" target="_blank" rel="noopener noreferrer">Register now</a> </div> </div> </div> <div class="devsite-article-meta" role="navigation"> <ul class="devsite-breadcrumb-list" aria-label="Breadcrumb"> <li class="devsite-breadcrumb-item "> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="Firebase"> Firebase </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/docs" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="2" track-type="globalNav" track-name="breadcrumb" track-metadata-position="2" track-metadata-eventdetail=""> Docs </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://web.archive.org/web/20210428230634/https://firebase.google.com/docs/guides" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="3" track-type="globalNav" track-name="breadcrumb" track-metadata-position="3" track-metadata-eventdetail=""> Fundamentals </a> </li> </ul> <devsite-thumb-rating position="header"> <template class="thumb-down-categories"> [{ "type": "thumb-down", "id": "missingTheInformationINeed", "label":"Missing the information I need" },{ "type": "thumb-down", "id": "tooComplicatedTooManySteps", "label":"Too complicated / too many steps" },{ "type": "thumb-down", "id": "outOfDate", "label":"Out of date" },{ "type": "thumb-down", "id": "samplesCodeIssue", "label":"Samples / code issue" },{ "type": "thumb-down", "id": "otherDown", "label":"Other" }] </template> <template class="thumb-up-categories"> [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"Easy to understand" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"Solved my problem" },{ "type": "thumb-up", "id": "otherUp", "label":"Other" }] </template> <template class="thumb-rating-feedback"> <devsite-feedback position="thumb-rating" project-name="Firebase" product-id="719752" bucket="" context="" version="t-devsite-webserver-20210422-r01-rc01.434751840001528656" data-label="Send Feedback Button" track-type="feedback" track-name="sendFeedbackLink" track-metadata-position="thumb-rating" project-feedback-url="https://firebase.google.com/support/contact/bugs-features/" project-icon="https://firebase.google.com/_static/firebase/images/logo.png" project-support-url="https://firebase.google.com/support/" feedback-type="thumb-rating"> <button> Need to tell us more? </button> </devsite-feedback> </template> </devsite-thumb-rating> </div> <devsite-feedback position="header" project-name="Firebase" product-id="719752" bucket="" context="" version="t-devsite-webserver-20210422-r01-rc01.434751840001528656" data-label="Send Feedback Button" track-type="feedback" track-name="sendFeedbackLink" track-metadata-position="header" project-feedback-url="https://firebase.google.com/support/contact/bugs-features/" project-icon="https://firebase.google.com/_static/firebase/images/logo.png" project-support-url="https://firebase.google.com/support/" feedback-type="thumb-rating"> <button> Send feedback </button> </devsite-feedback> <h1 class="devsite-page-title">Add Firebase to your Android project</h1> <devsite-toc class="devsite-nav" devsite-toc-embedded> </devsite-toc> <div class="devsite-article-body clearfix "> <div class="video-wrapper"> <iframe class="devsite-embedded-youtube-video" data-video-id="dRYnm_k3w1w" data-autohide="1" data-showinfo="0" frameborder="0" allowfullscreen> </iframe> </div> <h2 id="prerequisites" data-text="Prerequisites">Prerequisites</h2> <ul> <li><p>Install or update <a href="//web.archive.org/web/20210428230634/https://developer.android.com/sdk" class="external">Android Studio</a> to its latest version.</p></li> <li><p>Make sure that your project meets these requirements:</p> <ul> <li>Targets API level 16 (Jelly Bean) or later</li> <li>Uses Gradle 4.1 or later</li> <li>Uses <a href="//web.archive.org/web/20210428230634/https://developer.android.com/jetpack/androidx/migrate">Jetpack (AndroidX)</a>, which includes meeting these version requirements: <ul> <li><code translate="no" dir="ltr">com.android.tools.build:gradle</code> v3.2.1 or later</li> <li><code translate="no" dir="ltr">compileSdkVersion</code> 28 or later</li> </ul></li> </ul></li> <li><p>Set up a physical device or use an <a href="//web.archive.org/web/20210428230634/https://developer.android.com/studio/run/managing-avds" class="external">emulator</a> to run your app.<br> Note that <a href="/web/20210428230634/https://firebase.google.com/docs/android/android-play-services">Firebase SDKs with a dependency on Google Play services</a> require the device or emulator to have Google Play services installed.</p></li> <li><p><a href="//web.archive.org/web/20210428230634/https://console.firebase.google.com/" class="external">Sign into Firebase</a> using your Google account.</p></li> </ul> <p>If you don&#39;t already have an Android project and just want to try out a Firebase product, you can download one of our <a href="/web/20210428230634/https://firebase.google.com/docs/samples">quickstart samples</a>.</p> <p><br><strong>You can connect your Android app to Firebase using one of the following options:</strong></p> <ul> <li><a href="/web/20210428230634/https://firebase.google.com/docs/android/setup#console"><strong>Option 1</strong></a>: <em>(recommended)</em> Use the Firebase console setup workflow.</li> <li><a href="/web/20210428230634/https://firebase.google.com/docs/android/setup#assistant"><strong>Option 2</strong></a>: Use the Android Studio Firebase Assistant (may require additional configuration).</li> </ul> <p><br></p> <hr> <h2 id="console" data-text="Option 1: Add Firebase using the Firebase console"><strong>Option 1</strong>: Add Firebase using the Firebase console</h2> <p>Adding Firebase to your app involves tasks both in the <a href="//web.archive.org/web/20210428230634/https://console.firebase.google.com/" class="link external gc-analytics-event" data-category="console" data-action="linkClick">Firebase console</a> and in your open Android project (for example, you download Firebase config files from the console, then move them into your Android project).</p> <h3 id="create-firebase-project" data-text="Step 1: Create a Firebase project"><strong>Step 1</strong>: Create a Firebase project</h3> <p>Before you can add Firebase to your Android app, you need to create a Firebase project to connect to your Android app. Visit <a href="/web/20210428230634/https://firebase.google.com/docs/projects/learn-more">Understand Firebase Projects</a> to learn more about Firebase projects.</p> <section class="expandable"> <p class="showalways"><strong>Create a Firebase project</strong></p> <ol> <li> <p>In the <a href="//web.archive.org/web/20210428230634/https://console.firebase.google.com/" class="link external gc-analytics-event" data-category="console" data-action="linkClick">Firebase console</a>, click <strong>Add project</strong>, then select or enter a <strong>Project name</strong>.</p> <p>If you have an existing Google Cloud project, you can select the project from the dropdown menu to add Firebase resources to that project.</p> </li> <li> <p><em>(Optional)</em> If you are creating a new project, you can edit the <strong>Project ID</strong>.</p> <p>Firebase automatically assigns a unique ID to your Firebase project. Visit <a href="/web/20210428230634/https://firebase.google.com/docs/projects/learn-more#project-id">Understand Firebase Projects</a> to learn about how Firebase uses the project ID.</p> <aside class="caution"><strong>After Firebase provisions resources for your Firebase project, you cannot change your project ID.</strong> <br>To use a specific identifier, you must edit your project ID during this setup step. </aside> </li> <li> <p>Click <strong>Continue</strong>.</p> </li> <li> <p><em>(Optional)</em> Set up Google Analytics for your project, which enables you to have an optimal experience using any of the following Firebase products:</p> <table class="columns"> <tr> <td> <ul> <li><a href="/web/20210428230634/https://firebase.google.com/docs/crashlytics">Firebase Crashlytics</a></li> <li><a href="/web/20210428230634/https://firebase.google.com/docs/predictions">Firebase Predictions</a></li> </ul> </td> <td> <ul> <li><a href="/web/20210428230634/https://firebase.google.com/docs/cloud-messaging">Firebase Cloud Messaging</a></li> <li><a href="/web/20210428230634/https://firebase.google.com/docs/in-app-messaging">Firebase In-App Messaging</a></li> </ul> </td> <td> <ul> <li><a href="/web/20210428230634/https://firebase.google.com/docs/remote-config">Firebase Remote Config</a></li> <li><a href="/web/20210428230634/https://firebase.google.com/docs/ab-testing">Firebase A/B Testing</a></li> </ul> </td> </tr> </table> <p>When prompted, select to use an existing <a href="//web.archive.org/web/20210428230634/https://support.google.com/analytics/answer/1009618?ref_topic=3544906&amp;authuser=0">Google Analytics account</a> or to create a new account.<br> If you choose to create a new account, select your <a href="/web/20210428230634/https://firebase.google.com/docs/projects/locations">Analytics reporting location</a>, then accept the data sharing settings and Google Analytics terms for your project. </p> <aside class="note">You can always set up Google Analytics later in the <a href="//web.archive.org/web/20210428230634/https://console.firebase.google.com/project/_/settings/integrations"><em>Integrations</em></a> tab of your <span class="material-icons" aria-hidden="true" translate="no">settings</span> <em>Project settings</em>. </aside> </li> <li> <p>Click <strong>Create project</strong> (or <strong>Add Firebase</strong>, if you're using an existing Google Cloud project).</p> </li> </ol> <p>Firebase automatically provisions resources for your Firebase project. When the process completes, you'll be taken to the overview page for your Firebase project in the Firebase console.</p> </section> <h3 id="register-app" data-text="Step 2: Register your app with Firebase"><strong>Step 2</strong>: Register your app with Firebase</h3> <p>To use Firebase in your Android app, you need to register your app with your Firebase project. Registering your app is often called &quot;adding&quot; your app to your project.</p> <aside class="note"><strong>Note:</strong><span> Visit <a href="/web/20210428230634/https://firebase.google.com/docs/projects/learn-more#best-practices">Understand Firebase Projects</a> to learn more about best practices and considerations for adding apps to a Firebase project, including how to handle multiple build variants.</span></aside> <ol> <li><p>Go to the <a href="//web.archive.org/web/20210428230634/https://console.firebase.google.com/" class="external">Firebase console</a>.</p></li> <li><p>In the center of the project overview page, click the <strong>Android</strong> icon (<span title="Android" aria-label="Android" class="gmp-icons material-icons" aria-hidden="true" translate="no">plat_android</span>) or <strong>Add app</strong> to launch the setup workflow.</p></li> <li><p>Enter your app&#39;s package name in the <strong>Android package name</strong> field.</p> <p><section class="expandable"> <p class="showalways">What&#39;s a package name, and where do you find it?</p></p> <blockquote> <ul> <li><p>A <a href="//web.archive.org/web/20210428230634/https://developer.android.com/studio/build/application-id" class="external">package name</a> uniquely identifies your app on the device and in the Google Play Store.</p></li> <li><p>A <em>package name</em> is often referred to as an <em>application ID</em>.</p></li> <li><p>Find your app&#39;s package name in your module (app-level) Gradle file, usually <code translate="no" dir="ltr">app/build.gradle</code> (example package name: <code translate="no" dir="ltr">com.yourcompany.yourproject</code>).</p></li> <li><p>Be aware that the package name value is case-sensitive, and it cannot be changed for this Firebase Android app after it&#39;s registered with your Firebase project.</p></li> </ul> </blockquote> <p></section></p> <aside class="caution">Make sure to enter the package name that your app is actually using. The package name value is case-sensitive, and it cannot be changed for this Firebase Android app after it's registered with your Firebase project. </aside></li> <li><p><em>(Optional)</em> Enter other app information: <strong>App nickname</strong> and <strong>Debug signing certificate SHA-1</strong>.</p> <p><section class="expandable"> <p class="showalways">How are the <i>App nickname</i> and the <i>Debug signing certificate SHA-1</i> used within Firebase?</p></p> <blockquote> <ul> <li><p><strong>App nickname</strong>: An internal, convenience identifier that is only visible to you in the Firebase console</p></li> <li><p><strong>Debug signing certificate SHA-1</strong>: A <a href="//web.archive.org/web/20210428230634/https://developers.google.com/android/guides/client-auth" class="external">SHA-1 hash</a> is required by Firebase Authentication (when using <a href="/web/20210428230634/https://firebase.google.com/docs/auth/android/google-signin">Google Sign In</a> or <a href="/web/20210428230634/https://firebase.google.com/docs/auth/android/phone-auth">phone number sign in</a>) and <a href="/web/20210428230634/https://firebase.google.com/docs/dynamic-links">Firebase Dynamic Links</a>.</p></li> </ul> </blockquote> <p></section></p></li> <li><p>Click <strong>Register app</strong>.</p></li> </ol> <h3 id="add-config-file" data-text="Step 3: Add a Firebase configuration file"><strong>Step 3</strong>: Add a Firebase configuration file</h3> <ol> <li><p>Add the Firebase Android configuration file to your app:</p> <ol> <li><p>Click <strong>Download google-services.json</strong> to obtain your Firebase Android config file (<code translate="no" dir="ltr"><nobr>google-services.json</nobr></code>).</p></li> <li><p>Move your config file into the module (app-level) directory of your app.</p></li> </ol> <p><section class="expandable"> <p class="showalways">What do you need to know about this config file?</p></p> <blockquote> <ul> <li><p>The Firebase config file contains unique, but non-secret identifiers for your project. To learn more about this config file, visit <a href="/web/20210428230634/https://firebase.google.com/docs/projects/learn-more#config-files-objects">Understand Firebase Projects</a>.</p></li> <li><p>You can download your <a href="//web.archive.org/web/20210428230634/https://support.google.com/firebase/answer/7015592" class="external">Firebase config file</a> again at any time.</p></li> <li><p>Make sure the config file name is not appended with additional characters, like <code translate="no" dir="ltr">(2)</code>.</p></li> </ul> </blockquote> <p></section></p></li> <li><p>To enable Firebase products in your app, add the <a href="//web.archive.org/web/20210428230634/https://developers.google.com/android/guides/google-services-plugin" class="external">google-services plugin</a> to your Gradle files.</p> <ol> <li><p>In your root-level (project-level) Gradle file (<code translate="no" dir="ltr">build.gradle</code>), add rules to include the Google Services Gradle plugin. Check that you have Google&#39;s Maven repository, as well.</p> <pre class="prettyprint" translate="no" dir="ltr"> buildscript { repositories { <strong>// Check that you have the following line (if not, add it): google() // Google's Maven repository</strong> } dependencies { // ... <strong>// Add the following line: classpath 'com.google.gms:google-services:4.3.5' // Google Services plugin</strong> } } allprojects { // ... repositories { <strong>// Check that you have the following line (if not, add it): google() // Google's Maven repository</strong> // ... } } </pre></li> <li><p>In your module (app-level) Gradle file (usually <code translate="no" dir="ltr">app/build.gradle</code>), apply the Google Services Gradle plugin:</p> <pre class="prettyprint" translate="no" dir="ltr"> apply plugin: 'com.android.application' <strong>// Add the following line: apply plugin: 'com.google.gms.google-services' // Google Services plugin</strong> android { // ... } </pre></li> </ol></li> </ol> <h3 id="add-sdks" data-text="Step 4: Add Firebase SDKs to your app"><strong>Step 4</strong>: Add Firebase SDKs to your app</h3> <ol> <li><p>Using the <a href="/web/20210428230634/https://firebase.google.com/docs/android/learn-more#bom">Firebase Android BoM</a>, declare the dependencies for the <a href="/web/20210428230634/https://firebase.google.com/docs/android/setup#available-libraries">Firebase products</a> that you want to use in your app. Declare them in your <b>module (app-level) Gradle file</b> (usually <code translate="no" dir="ltr">app/build.gradle</code>).</p> <div class="ds-selector-tabs" data-ds-scope="code-sample"> <section><h3 id="analytics-enabled" data-text=" Analytics enabled "> Analytics enabled </h3><div class="ds-selector-tabs" data-ds-scope="code-sample"> <section><h3 id="java" data-text=" Java "> <span class="two-line-tab"><span tab-label="Android">Java</span></span> </h3><pre class="prettyprint" translate="no" dir="ltr"> dependencies { // ... <strong>// Import the Firebase BoM implementation platform('com.google.firebase:firebase-bom:27.1.0')</strong> // When using the BoM, you don't specify versions in Firebase library dependencies <strong>// Declare the dependency for the Firebase SDK for Google Analytics</strong> <strong>implementation 'com.google.firebase:firebase-analytics'</strong> <strong>// Declare the dependencies for any other desired <a href="/web/20210428230634/https://firebase.google.com/docs/android/setup#available-libraries">Firebase products</a></strong> // For example, declare the dependencies for Firebase Authentication and Cloud Firestore implementation 'com.google.firebase:firebase-auth' implementation 'com.google.firebase:firebase-firestore' } </pre></section> <section><h3 id="kotlin+ktx" data-text=" Kotlin+KTX "> <span class="two-line-tab"><span tab-label="Android">Kotlin+KTX</span></span> </h3><pre class="prettyprint" translate="no" dir="ltr"> dependencies { // ... <strong>// Import the Firebase BoM implementation platform('com.google.firebase:firebase-bom:27.1.0')</strong> // When using the BoM, you don't specify versions in Firebase library dependencies <strong>// Declare the dependency for the Firebase SDK for Google Analytics</strong> <strong>implementation 'com.google.firebase:firebase-analytics-ktx'</strong> <strong>// Declare the dependencies for any other desired <a href="/web/20210428230634/https://firebase.google.com/docs/android/setup#available-libraries">Firebase products</a></strong> // For example, declare the dependencies for Firebase Authentication and Cloud Firestore implementation 'com.google.firebase:firebase-auth-ktx' implementation 'com.google.firebase:firebase-firestore-ktx' } </pre></section> </div> <p>By using the <a href="/web/20210428230634/https://firebase.google.com/docs/android/learn-more#bom">Firebase Android BoM</a>, your app will always use compatible versions of the Firebase Android libraries. </p></section> <section><h3 id="analytics-not-enabled" data-text=" Analytics not enabled "> Analytics not enabled </h3><div class="ds-selector-tabs" data-ds-scope="code-sample"> <section><h3 id="java_1" data-text=" Java "> <span class="two-line-tab"><span tab-label="Android">Java</span></span> </h3><pre class="prettyprint" translate="no" dir="ltr"> dependencies { // ... <strong>// Import the Firebase BoM implementation platform('com.google.firebase:firebase-bom:27.1.0')</strong> // When using the BoM, you don't specify versions in Firebase library dependencies <strong>// Declare the dependencies for the desired <a href="/web/20210428230634/https://firebase.google.com/docs/android/setup#available-libraries">Firebase products</a></strong> // For example, declare the dependencies for Firebase Authentication and Cloud Firestore implementation 'com.google.firebase:firebase-auth' implementation 'com.google.firebase:firebase-firestore' } </pre></section> <section><h3 id="kotlin+ktx_1" data-text=" Kotlin+KTX "> <span class="two-line-tab"><span tab-label="Android">Kotlin+KTX</span></span> </h3><pre class="prettyprint" translate="no" dir="ltr"> dependencies { // ... <strong>// Import the Firebase BoM implementation platform('com.google.firebase:firebase-bom:27.1.0')</strong> // When using the BoM, you don't specify versions in Firebase library dependencies <strong>// Declare the dependencies for the desired <a href="/web/20210428230634/https://firebase.google.com/docs/android/setup#available-libraries">Firebase products</a></strong> // For example, declare the dependencies for Firebase Authentication and Cloud Firestore implementation 'com.google.firebase:firebase-auth-ktx' implementation 'com.google.firebase:firebase-firestore-ktx' } </pre></section> </div> <p>By using the <a href="/web/20210428230634/https://firebase.google.com/docs/android/learn-more#bom">Firebase Android BoM</a>, your app will always use compatible versions of the Firebase Android libraries. </p></section> </div></li> <li><p>Sync your app to ensure that all dependencies have the necessary versions.</p></li> </ol> <p>That&#39;s it! You can skip ahead to check out the recommended <a href="/web/20210428230634/https://firebase.google.com/docs/android/setup#next_steps">next steps</a>.</p> <p><br></p> <hr> <h2 id="assistant" data-text="Option 2: Add Firebase using the Firebase Assistant"><strong>Option 2</strong>: Add Firebase using the Firebase Assistant</h2> <p>The <a href="/web/20210428230634/https://firebase.google.com/docs/android/learn-more#firebase-assistant">Firebase Assistant</a> registers your app with a Firebase project and adds the necessary Firebase files, plugins, and dependencies to your Android project — all from within Android Studio!</p> <ol> <li><p>Open your Android project in Android Studio, then make sure that you&#39;re using the latest versions of Android Studio and the Firebase Assistant:</p> <ul> <li>Windows / Linux: <strong>Help &gt; Check for updates</strong></li> <li>macOS: <strong>Android Studio &gt; Check for updates</strong></li> </ul></li> <li><p>Open the Firebase Assistant: <strong>Tools &gt; Firebase</strong>.</p></li> <li><p>In the <em>Assistant</em> pane, choose a Firebase product to add to your app. Expand its section, then click the tutorial link (for example, <b><nobr>Analytics &gt; Log an Analytics event</nobr></b>).</p> <ol> <li><p>Click <strong>Connect to Firebase</strong> to connect your Android project with Firebase.</p> <p><section class="expandable"> <p class="showalways">What does this workflow do?</p></p> <blockquote> <ul> <li><p>This workflow automatically creates a new Firebase Android app using your app&#39;s <a href="//web.archive.org/web/20210428230634/https://developer.android.com/studio/build/application-id" class="external">package name</a>. You can create this new Firebase Android app in either an existing Firebase project or a new project.</p> <p>Here are some tips about setting up your Firebase project:</p> <ul> <li><p>Visit <a href="/web/20210428230634/https://firebase.google.com/docs/projects/learn-more#best-practices">Understand Firebase Projects</a> to learn more about best practices and considerations for adding apps to a Firebase project, including how to handle multiple build variants.</p></li> <li><p>If you create a new project, we strongly recommend that you set up Google Analytics for your project, which enables you to have an optimal experience using many Firebase products.</p></li> </ul></li> <li><p>This workflow also adds your Firebase project&#39;s Android configuration file (<code translate="no" dir="ltr"><nobr>google-services.json</nobr></code>) to the module (app-level) directory of your app.</p> <aside class="note"><strong>Note:</strong><span> The Firebase config file contains unique, but non-secret identifiers for your project. <br>Visit <a href="/web/20210428230634/https://firebase.google.com/docs/projects/learn-more#config-files-objects">Understand Firebase Projects</a> to learn more about this config file.</span></aside></li> </ul> </blockquote> <p></section></p></li> <li><p>Click the button to add a desired Firebase product (for example, <b><nobr>Add Analytics to your app</nobr></b>).</p></li> </ol></li> <li><p>Sync your app to ensure that all dependencies have the necessary versions.</p></li> <li><p>In the <em>Assistant</em> pane, follow the remaining setup instructions for your selected Firebase product.</p></li> <li><p>Add as many other Firebase products as you&#39;d like via the Firebase Assistant!</p></li> </ol> <aside class="note"> <p><b>Are you using Kotlin?</b><br> You can use the alternative <a href="/web/20210428230634/https://firebase.google.com/docs/android/setup#available-libraries">Kotlin extensions (KTX) libraries</a> which enable you to write beautiful and idiomatic Kotlin code. </p> </aside> <aside class="note"> <p><b>Do you want an easier way to manage library versions?</b><br> You can use the <a href="/web/20210428230634/https://firebase.google.com/docs/android/learn-more#bom">Firebase Android BoM</a> to manage your Firebase library versions and ensure that your app is always using compatible library versions. </p> </aside> <p>That&#39;s it! Make sure to check out the recommended <a href="/web/20210428230634/https://firebase.google.com/docs/android/setup#next_steps">next steps</a>.</p> <p><br></p> <hr> <h2 id="available-libraries" data-text="Available libraries">Available libraries</h2> <p>This section lists the Firebase products supported for Android and their Gradle dependencies. Learn more about these Firebase Android libraries:</p> <ul> <li><p>Reference documentation (<a href="/web/20210428230634/https://firebase.google.com/docs/reference/android/packages">Java</a> | <a href="/web/20210428230634/https://firebase.google.com/docs/reference/kotlin/packages">Kotlin+KTX</a>)</p></li> <li><p>Firebase Android SDK <a href="//web.archive.org/web/20210428230634/https://github.com/firebase/firebase-android-sdk" class="external">GitHub repo</a> </p></li> </ul> <p>Note that when using the <a href="/web/20210428230634/https://firebase.google.com/docs/android/learn-more#bom">Firebase Android BoM</a>, you don&#39;t specify individual library versions when you declare Firebase library dependencies in <code translate="no" dir="ltr">build.gradle</code>.</p> <aside class="note"> <p>The Firebase Android library <code translate="no" dir="ltr">firebase-core</code> is no longer needed. This SDK included the Firebase SDK for Google Analytics. </p> <p>Now, to use Analytics or a product that recommends adding Analytics (see table below), you need to explicitly declare the Analytics dependency: <code translate="no" dir="ltr">com.google.firebase:firebase-analytics</code> or <code translate="no" dir="ltr">com.google.firebase:firebase-analytics-ktx</code>. </p> </aside> <div class="ds-selector-tabs" data-ds-scope="code-sample"> <section><h3 id="java_2" data-text=" Java "> <span class="two-line-tab"><span tab-label="Android">Java</span></span> </h3><table> <thead> <tr> <th width="32%">Service or Product</th> <th width="45%">Gradle dependency</th> <th>Latest<br>version</th> <th width="10%"><abbr data-title="For an optimal experience using this product, add the Firebase SDK for Google Analytics.">Add Analytics?</abbr></th> </tr> </thead> <tbody> <tr> <td><a href="/web/20210428230634/https://firebase.google.com/docs/android/learn-more#bom">Firebase Android BoM<br>(Bill of Materials)</a></td> <td>com.google.firebase:firebase-bom <br> <p>The latest Firebase BoM version contains the latest versions of each Firebase Android library. To learn which library versions are mapped to a specific BoM version, review the release notes for that BoM version.</p> </td> <td>27.1.0</td> <td></td> </tr> <tr> <td><a href="/web/20210428230634/https://firebase.google.com/docs/admob/android/quick-start">AdMob</a></td> <td>com.google.android.gms:play-services-ads</td> <td>20.0.0</td> <td><span class="compare-yes"></span></td> </tr> <tr> <td><a href="/web/20210428230634/https://firebase.google.com/docs/analytics/get-started?platform=android">Analytics</a></td> <td>com.google.firebase:firebase-analytics</td> <td>18.0.3</td> <td><span class="compare-yes"></span></td> </tr> <tr> <td><a href="/web/20210428230634/https://firebase.google.com/docs/app-indexing/android/app">App Indexing</a></td> <td>com.google.firebase:firebase-appindexing</td> <td>19.2.0</td> <td></td> </tr> <tr> <td><a href="/web/20210428230634/https://firebase.google.com/docs/auth/android/start">Authentication</a></td> <td>com.google.firebase:firebase-auth</td> <td>20.0.4</td> <td></td> </tr> <tr> <td><a href="/web/20210428230634/https://firebase.google.com/docs/firestore">Cloud Firestore</a></td> <td>com.google.firebase:firebase-firestore</td> <td>22.1.2</td> <td></td> </tr> <tr> <td><a href="/web/20210428230634/https://firebase.google.com/docs/functions">Cloud Functions for Firebase Client SDK</a></td> <td>com.google.firebase:firebase-functions</td> <td>19.2.0</td> <td></td> </tr> <tr> <td><a href="/web/20210428230634/https://firebase.google.com/docs/cloud-messaging/android/client">Cloud Messaging</a></td> <td>com.google.firebase:firebase-messaging</td> <td>21.1.0</td> <td><span class="compare-yes"></span></td> </tr> <tr> <td><a href="/web/20210428230634/https://firebase.google.com/docs/storage/android/start">Cloud Storage</a></td> <td>com.google.firebase:firebase-storage</td> <td>19.2.2</td> <td></td> </tr> <tr> <td><a href="/web/20210428230634/https://firebase.google.com/docs/crashlytics/get-started?platform=android">Crashlytics</a></td> <td>com.google.firebase:firebase-crashlytics</td> <td>17.4.1</td> <td><span class="compare-yes"></span></td> </tr> <tr> <td><a href="/web/20210428230634/https://firebase.google.com/docs/dynamic-links/android/create">Dynamic Links</a></td> <td>com.google.firebase:firebase-dynamic-links</td> <td>19.1.1</td> <td><span class="compare-yes"></span></td> </tr> <tr> <td><a href="/web/20210428230634/https://firebase.google.com/docs/ml-kit">Firebase ML Model Downloader API</a></td> <td>com.google.firebase:firebase-ml-modeldownloader</td> <td>23.0.1</td> <td></td> </tr> <tr> <td><a href="/web/20210428230634/https://firebase.google.com/docs/in-app-messaging">In-App Messaging</a></td> <td>com.google.firebase:firebase-inappmessaging</td> <td>19.1.5</td> <td><span class="compare-yes"></span><br><em>(required)</em></td> </tr> <tr> <td><a href="/web/20210428230634/https://firebase.google.com/docs/in-app-messaging">In-App Messaging Display</a></td> <td>com.google.firebase:firebase-inappmessaging-display</td> <td>19.1.5</td> <td><span class="compare-yes"></span><br><em>(required)</em></td> </tr> <tr> <td><a href="/web/20210428230634/https://firebase.google.com/docs/perf-mon/get-started-android">Performance Monitoring</a></td> <td>com.google.firebase:firebase-perf</td> <td>19.1.1</td> <td></td> </tr> <tr> <td><a href="/web/20210428230634/https://firebase.google.com/docs/database">Realtime Database</a></td> <td>com.google.firebase:firebase-database</td> <td>19.7.0</td> <td></td> </tr> <tr> <td><a href="/web/20210428230634/https://firebase.google.com/docs/remote-config/use-config-android">Remote Config</a></td> <td>com.google.firebase:firebase-config</td> <td>20.0.4</td> <td><span class="compare-yes"></span></td> </tr> <tr> <td><a href="//web.archive.org/web/20210428230634/https://developers.google.com/android/guides/google-services-plugin" class="external">Google Play services plugin</a></td> <td>com.google.gms:google-services</td> <td>4.3.5</td> <td></td> </tr> </tbody> <thead> <tr> <th colspan="4">Deprecated libraries</th> </tr> </thead> <tbody> <tr> <td><a href="/web/20210428230634/https://firebase.google.com/docs/ml-kit">Firebase ML Custom Model APIs</a></td> <td>com.google.firebase:firebase-ml-model-interpreter</td> <td>22.0.4</td> <td></td> </tr> <tr> <td><a href="/web/20210428230634/https://firebase.google.com/docs/ml-kit">Firebase ML Vision APIs</a></td> <td>com.google.firebase:firebase-ml-vision</td> <td>24.1.0</td> <td></td> </tr> <tr> <td><a href="/web/20210428230634/https://firebase.google.com/docs/ml-kit">Firebase ML: Image Labeling Model</a></td> <td>com.google.firebase:firebase-ml-vision-image-label-model</td> <td>20.0.2</td> <td></td> </tr> <tr> <td><a href="/web/20210428230634/https://firebase.google.com/docs/ml-kit">Firebase ML: Object Detection and Tracking Model</a></td> <td>com.google.firebase:firebase-ml-vision-object-detection-model</td> <td>19.0.6</td> <td></td> </tr> <tr> <td><a href="/web/20210428230634/https://firebase.google.com/docs/ml-kit">Firebase ML: Face Detection Model</a></td> <td>com.google.firebase:firebase-ml-vision-face-model</td> <td>20.0.2</td> <td></td> </tr> <tr> <td><a href="/web/20210428230634/https://firebase.google.com/docs/ml-kit">Firebase ML: Barcode Scanning Model</a></td> <td>com.google.firebase:firebase-ml-vision-barcode-model</td> <td>16.1.2</td> <td></td> </tr> <tr> <td><a href="/web/20210428230634/https://firebase.google.com/docs/ml-kit">Firebase ML: AutoML Vision Edge API</a></td> <td>com.google.firebase:firebase-ml-vision-automl</td> <td>18.0.6</td> <td></td> </tr> <tr> <td><a href="/web/20210428230634/https://firebase.google.com/docs/ml-kit">Firebase ML: Natural Language APIs</a></td> <td>com.google.firebase:firebase-ml-natural-language</td> <td>22.0.1</td> <td></td> </tr> <tr> <td><a href="/web/20210428230634/https://firebase.google.com/docs/ml-kit">Firebase ML: Language Identification Model</a></td> <td>com.google.firebase:firebase-ml-natural-language-language-id-model</td> <td>20.0.8</td> <td></td> </tr> <tr> <td><a href="/web/20210428230634/https://firebase.google.com/docs/ml-kit">Firebase ML: Translate Model</a></td> <td>com.google.firebase:firebase-ml-natural-language-translate-model</td> <td>20.0.9</td> <td></td> </tr> <tr> <td><a href="/web/20210428230634/https://firebase.google.com/docs/ml-kit">Firebase ML: Smart Reply Model</a></td> <td>com.google.firebase:firebase-ml-natural-language-smart-reply-model</td> <td>20.0.8</td> <td></td> </tr> </tbody> </table></section> <section><h3 id="kotlin+ktx_2" data-text=" Kotlin+KTX "> <span class="two-line-tab"><span tab-label="Android">Kotlin+KTX</span></span> </h3><table> <thead> <tr> <th width="32%">Service or Product</th> <th width="45%">Gradle dependency</th> <th>Latest<br>version</th> <th width="10%"><abbr data-title="For an optimal experience using this product, add the Firebase SDK for Google Analytics.">Add Analytics?</abbr></th> </tr> </thead> <tbody> <tr> <td><a href="/web/20210428230634/https://firebase.google.com/docs/android/learn-more#bom">Firebase Android BoM<br>(Bill of Materials)</a></td> <td>com.google.firebase:firebase-bom <br> <p>The latest Firebase BoM version contains the latest versions of each Firebase Android library. To learn which library versions are mapped to a specific BoM version, review the release notes for that BoM version.</p> </td> <td>27.1.0</td> <td></td> </tr> <tr> <td><a href="/web/20210428230634/https://firebase.google.com/docs/admob/android/quick-start">AdMob</a></td> <td>com.google.android.gms:play-services-ads</td> <td>20.0.0</td> <td><span class="compare-yes"></span></td> </tr> <tr> <td><a href="/web/20210428230634/https://firebase.google.com/docs/analytics/get-started?platform=android">Analytics</a></td> <td>com.google.firebase:firebase-analytics-ktx</td> <td>18.0.3</td> <td><span class="compare-yes"></span></td> </tr> <tr> <td><a href="/web/20210428230634/https://firebase.google.com/docs/app-indexing/android/app">App Indexing</a></td> <td>com.google.firebase:firebase-appindexing</td> <td>19.2.0</td> <td></td> </tr> <tr> <td><a href="/web/20210428230634/https://firebase.google.com/docs/auth/android/start">Authentication</a></td> <td>com.google.firebase:firebase-auth-ktx</td> <td>20.0.4</td> <td></td> </tr> <tr> <td><a href="/web/20210428230634/https://firebase.google.com/docs/firestore">Cloud Firestore</a></td> <td>com.google.firebase:firebase-firestore-ktx</td> <td>22.1.2</td> <td></td> </tr> <tr> <td><a href="/web/20210428230634/https://firebase.google.com/docs/functions">Cloud Functions for Firebase Client SDK</a></td> <td>com.google.firebase:firebase-functions-ktx</td> <td>19.2.0</td> <td></td> </tr> <tr> <td><a href="/web/20210428230634/https://firebase.google.com/docs/cloud-messaging/android/client">Cloud Messaging</a></td> <td>com.google.firebase:firebase-messaging-ktx</td> <td>21.0.1</td> <td><span class="compare-yes"></span></td> </tr> <tr> <td><a href="/web/20210428230634/https://firebase.google.com/docs/storage/android/start">Cloud Storage</a></td> <td>com.google.firebase:firebase-storage-ktx</td> <td>19.2.2</td> <td></td> </tr> <tr> <td><a href="/web/20210428230634/https://firebase.google.com/docs/crashlytics/get-started?platform=android">Crashlytics</a></td> <td>com.google.firebase:firebase-crashlytics-ktx</td> <td>17.4.1</td> <td><span class="compare-yes"></span></td> </tr> <tr> <td><a href="/web/20210428230634/https://firebase.google.com/docs/dynamic-links/android/create">Dynamic Links</a></td> <td>com.google.firebase:firebase-dynamic-links-ktx</td> <td>19.1.1</td> <td><span class="compare-yes"></span></td> </tr> <tr> <td><a href="/web/20210428230634/https://firebase.google.com/docs/in-app-messaging">In-App Messaging</a></td> <td>com.google.firebase:firebase-inappmessaging-ktx</td> <td>19.1.5</td> <td><span class="compare-yes"></span><br><em>(required)</em></td> </tr> <tr> <td><a href="/web/20210428230634/https://firebase.google.com/docs/in-app-messaging">In-App Messaging Display</a></td> <td>com.google.firebase:firebase-inappmessaging-display-ktx</td> <td>19.1.5</td> <td><span class="compare-yes"></span><br><em>(required)</em></td> </tr> <tr> <td><a href="/web/20210428230634/https://firebase.google.com/docs/perf-mon/get-started-android">Performance Monitoring</a></td> <td>com.google.firebase:firebase-perf-ktx</td> <td>19.1.1</td> <td></td> </tr> <tr> <td><a href="/web/20210428230634/https://firebase.google.com/docs/database">Realtime Database</a></td> <td>com.google.firebase:firebase-database-ktx</td> <td>19.7.0</td> <td></td> </tr> <tr> <td><a href="/web/20210428230634/https://firebase.google.com/docs/remote-config/use-config-android">Remote Config</a></td> <td>com.google.firebase:firebase-config-ktx</td> <td>20.0.4</td> <td><span class="compare-yes"></span></td> </tr> <tr> <td><a href="//web.archive.org/web/20210428230634/https://developers.google.com/android/guides/google-services-plugin" class="external">Google Play services plugin</a></td> <td>com.google.gms:google-services</td> <td>4.3.5</td> <td></td> </tr> </tbody> <thead> <tr> <th colspan="4">Deprecated libraries</th> </tr> </thead> <tbody> <tr> <td><a href="/web/20210428230634/https://firebase.google.com/docs/ml-kit">Firebase ML Custom Model APIs</a></td> <td>com.google.firebase:firebase-ml-model-interpreter</td> <td>22.0.4</td> <td></td> </tr> <tr> <td><a href="/web/20210428230634/https://firebase.google.com/docs/ml-kit">Firebase ML Vision APIs</a></td> <td>com.google.firebase:firebase-ml-vision</td> <td>24.1.0</td> <td></td> </tr> <tr> <td><a href="/web/20210428230634/https://firebase.google.com/docs/ml-kit">Firebase ML: Image Labeling Model</a></td> <td>com.google.firebase:firebase-ml-vision-image-label-model</td> <td>20.0.2</td> <td></td> </tr> <tr> <td><a href="/web/20210428230634/https://firebase.google.com/docs/ml-kit">Firebase ML: Object Detection and Tracking Model</a></td> <td>com.google.firebase:firebase-ml-vision-object-detection-model</td> <td>19.0.6</td> <td></td> </tr> <tr> <td><a href="/web/20210428230634/https://firebase.google.com/docs/ml-kit">Firebase ML: Face Detection Model</a></td> <td>com.google.firebase:firebase-ml-vision-face-model</td> <td>20.0.2</td> <td></td> </tr> <tr> <td><a href="/web/20210428230634/https://firebase.google.com/docs/ml-kit">Firebase ML: Barcode Scanning Model</a></td> <td>com.google.firebase:firebase-ml-vision-barcode-model</td> <td>16.1.2</td> <td></td> </tr> <tr> <td><a href="/web/20210428230634/https://firebase.google.com/docs/ml-kit">Firebase ML: AutoML Vision Edge API</a></td> <td>com.google.firebase:firebase-ml-vision-automl</td> <td>18.0.6</td> <td></td> </tr> <tr> <td><a href="/web/20210428230634/https://firebase.google.com/docs/ml-kit">Firebase ML: Natural Language APIs</a></td> <td>com.google.firebase:firebase-ml-natural-language</td> <td>22.0.1</td> <td></td> </tr> <tr> <td><a href="/web/20210428230634/https://firebase.google.com/docs/ml-kit">Firebase ML: Language Identification Model</a></td> <td>com.google.firebase:firebase-ml-natural-language-language-id-model</td> <td>20.0.8</td> <td></td> </tr> <tr> <td><a href="/web/20210428230634/https://firebase.google.com/docs/ml-kit">Firebase ML: Translate Model</a></td> <td>com.google.firebase:firebase-ml-natural-language-translate-model</td> <td>20.0.9</td> <td></td> </tr> <tr> <td><a href="/web/20210428230634/https://firebase.google.com/docs/ml-kit">Firebase ML: Smart Reply Model</a></td> <td>com.google.firebase:firebase-ml-natural-language-smart-reply-model</td> <td>20.0.8</td> <td></td> </tr> </tbody> </table></section> </div> <p><br></p> <hr> <h2 id="next_steps" data-text="Next steps">Next steps</h2> <p><strong>Add Firebase services to your app:</strong></p> <ul> <li><p>Gain insights on user behavior with <a href="/web/20210428230634/https://firebase.google.com/docs/analytics/android/start">Analytics</a>.</p></li> <li><p>Set up a user authentication flow with <a href="/web/20210428230634/https://firebase.google.com/docs/auth/android/start">Authentication</a>.</p></li> <li><p>Store data, like user information, with <a href="/web/20210428230634/https://firebase.google.com/docs/firestore/quickstart">Cloud Firestore</a> or <a href="/web/20210428230634/https://firebase.google.com/docs/database/android/start">Realtime Database</a>.</p></li> <li><p>Store files, like photos and videos, with <a href="/web/20210428230634/https://firebase.google.com/docs/storage/android/start">Cloud Storage</a>.</p></li> <li><p>Trigger backend code that runs in a secure environment with <a href="/web/20210428230634/https://firebase.google.com/docs/functions/callable#call_the_function">Cloud Functions</a>.</p></li> <li><p>Send notifications with <a href="/web/20210428230634/https://firebase.google.com/docs/cloud-messaging/android/client">Cloud Messaging</a>.</p></li> <li><p>Find out when and why your app is crashing with <a href="/web/20210428230634/https://firebase.google.com/docs/crashlytics">Crashlytics</a>.</p></li> </ul> <p><strong>Learn about Firebase:</strong></p> <ul> <li><p>Visit <a href="/web/20210428230634/https://firebase.google.com/docs/projects/learn-more">Understand Firebase Projects</a> to learn more about Firebase projects and best practices for projects.</p></li> <li><p>Visit <a href="/web/20210428230634/https://firebase.google.com/docs/android/learn-more">Learn more about Android and Firebase</a> if you have questions about concepts that are unfamiliar or specific to Firebase and Android development.</p></li> <li><p>Explore <a href="//web.archive.org/web/20210428230634/https://github.com/firebase/quickstart-android" class="external">sample Firebase apps</a>.</p></li> <li><p>Get hands-on experience with the <a href="//web.archive.org/web/20210428230634/https://codelabs.developers.google.com/codelabs/firebase-android/" class="external">Firebase Android Codelab</a>.</p></li> <li><p>Learn more with the <a href="//web.archive.org/web/20210428230634/https://udacity.com/course/ud0352" class="external">Firebase in a Weekend</a> course.</p></li> <li><p>Prepare to launch your app:</p> <ul> <li>Set up <a href="//web.archive.org/web/20210428230634/https://cloud.google.com/billing/docs/how-to/budgets" class="external">budget alerts</a> for your project in the Google Cloud Console.</li> <li>Monitor the <a href="//web.archive.org/web/20210428230634/https://console.firebase.google.com/project/_/usage" class="external"><em>Usage and billing</em> dashboard</a> in the Firebase console to get an overall picture of your project&#39;s usage across multiple Firebase services. </li> <li>Review the <a href="/web/20210428230634/https://firebase.google.com/support/guides/launch-checklist">Firebase launch checklist</a>.</li> </ul></li> </ul> </div> <devsite-thumb-rating position="footer"> <template class="thumb-down-categories"> [{ "type": "thumb-down", "id": "missingTheInformationINeed", "label":"Missing the information I need" },{ "type": "thumb-down", "id": "tooComplicatedTooManySteps", "label":"Too complicated / too many steps" },{ "type": "thumb-down", "id": "outOfDate", "label":"Out of date" },{ "type": "thumb-down", "id": "samplesCodeIssue", "label":"Samples / code issue" },{ "type": "thumb-down", "id": "otherDown", "label":"Other" }] </template> <template class="thumb-up-categories"> [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"Easy to understand" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"Solved my problem" },{ "type": "thumb-up", "id": "otherUp", "label":"Other" }] </template> <template class="thumb-rating-feedback"> <devsite-feedback position="thumb-rating" project-name="Firebase" product-id="719752" bucket="" context="" version="t-devsite-webserver-20210422-r01-rc01.434751840001528656" data-label="Send Feedback Button" track-type="feedback" track-name="sendFeedbackLink" track-metadata-position="thumb-rating" project-feedback-url="https://firebase.google.com/support/contact/bugs-features/" project-icon="https://firebase.google.com/_static/firebase/images/logo.png" project-support-url="https://firebase.google.com/support/" feedback-type="thumb-rating"> <button> Need to tell us more? </button> </devsite-feedback> </template> </devsite-thumb-rating> <devsite-feedback position="footer" project-name="Firebase" product-id="719752" bucket="" context="" version="t-devsite-webserver-20210422-r01-rc01.434751840001528656" data-label="Send Feedback Button" track-type="feedback" track-name="sendFeedbackLink" track-metadata-position="footer" project-feedback-url="https://firebase.google.com/support/contact/bugs-features/" project-icon="https://firebase.google.com/_static/firebase/images/logo.png" project-support-url="https://firebase.google.com/support/" feedback-type="thumb-rating"> <button> Send feedback </button> </devsite-feedback> </article> <devsite-content-footer class="nocontent"> <p>Except as otherwise noted, the content of this page is licensed under the <a href="https://web.archive.org/web/20210428230634/https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 License</a>, and code samples are licensed under the <a href="https://web.archive.org/web/20210428230634/https://www.apache.org/licenses/LICENSE-2.0">Apache 2.0 License</a>. For details, see the <a href="https://web.archive.org/web/20210428230634/https://developers.google.com/site-policies">Google Developers Site Policies</a>. Java is a registered trademark of Oracle and/or its affiliates.</p> <p>Last updated 2021-04-27 UTC.</p> </devsite-content-footer> </devsite-content> </main> <devsite-footer-promos class="devsite-footer"> </devsite-footer-promos> <devsite-footer-linkboxes class="devsite-footer"> <nav class="devsite-footer-linkboxes nocontent" aria-label="Footer links"> <ul class="devsite-footer-linkboxes-list"> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Learn</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="/web/20210428230634/https://firebase.google.com/docs/guides/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)"> Guides </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20210428230634/https://firebase.google.com/docs/reference/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)"> Reference </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20210428230634/https://firebase.google.com/docs/samples/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)"> Samples </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20210428230634/https://firebase.google.com/docs/libraries/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)"> Libraries </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20210428230634/https://github.com/firebase/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)"> GitHub </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Stay connected</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20210428230634/https://firebase.googleblog.com/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)"> Blog </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20210428230634/https://firebase.google.com/summit/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)"> Firebase Summit </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20210428230634/https://www.facebook.com/Firebase/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)"> Facebook </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20210428230634/https://twitter.com/Firebase" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)"> Twitter </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20210428230634/https://www.youtube.com/user/Firebase" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)"> YouTube </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Support</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="/web/20210428230634/https://firebase.google.com/support/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)"> Contact support </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20210428230634/https://stackoverflow.com/questions/tagged/firebase" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)"> Stack Overflow </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20210428230634/https://firebase.community/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)"> Slack community </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20210428230634/https://groups.google.com/forum/#!forum/firebase-talk" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)"> Google group </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20210428230634/https://firebase.google.com/support/releases" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)"> Release notes </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20210428230634/https://firebase.google.com/support/faq/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 6)"> FAQs </a> </li> </ul> </li> </ul> </nav> </devsite-footer-linkboxes> <devsite-footer-utility class="devsite-footer"> <div class="devsite-footer-utility nocontent"> <nav class="devsite-footer-sites" aria-label="Other Google Developers websites"> <a href="https://web.archive.org/web/20210428230634/https://developers.google.com/" class="devsite-footer-sites-logo-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Google Developers Link"> <img class="devsite-footer-sites-logo" src="https://web.archive.org/web/20210428230634im_/https://www.gstatic.com/devrel-devsite/prod/v03a3d4c6437e99a41d40c6bdaf7de2967257b2f68f85375303e5316db6e039e3/firebase/images/lockup-developers.svg" loading="lazy" alt="Google Developers"> </a> <ul class="devsite-footer-sites-list"> <li class="devsite-footer-sites-item"> <a href="//web.archive.org/web/20210428230634/https://developer.android.com/" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Android Link"> Android </a> </li> <li class="devsite-footer-sites-item"> <a href="//web.archive.org/web/20210428230634/https://developer.chrome.com/home" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Chrome Link"> Chrome </a> </li> <li class="devsite-footer-sites-item"> <a href="//web.archive.org/web/20210428230634/https://firebase.google.com/" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Firebase Link"> Firebase </a> </li> <li class="devsite-footer-sites-item"> <a href="//web.archive.org/web/20210428230634/https://cloud.google.com/" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Google Cloud Platform Link"> Google Cloud Platform </a> </li> <li class="devsite-footer-sites-item"> <a href="//web.archive.org/web/20210428230634/https://developers.google.com/products/" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer All products Link"> All products </a> </li> </ul> </nav> <nav class="devsite-footer-utility-links" aria-label="Utility links"> <ul class="devsite-footer-utility-list"> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="/web/20210428230634/https://firebase.google.com/terms/" data-category="Site-Wide Custom Events" data-label="Footer Terms link"> Terms </a> </li> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="//web.archive.org/web/20210428230634/https://policies.google.com/privacy" data-category="Site-Wide Custom Events" data-label="Footer Privacy link"> Privacy </a> </li> </ul> <devsite-language-selector> <devsite-select class="devsite-language-selector-menu"> <select aria-label="Select your language preference." class="devsite-language-selector-select" name="language" track-name="click" track-type="languageSelector"> <option>Language</option> <option value="en" lang="en" track-metadata-original-language="en" track-metadata-selected-language="en" track-name="changed" track-type="languageSelector"> English </option> <option value="id" lang="id" track-metadata-original-language="en" track-metadata-selected-language="id" track-name="changed" track-type="languageSelector"> Bahasa Indonesia </option> <option value="de" lang="de" track-metadata-original-language="en" track-metadata-selected-language="de" track-name="changed" track-type="languageSelector"> Deutsch </option> <option value="es_419" lang="es_419" track-metadata-original-language="en" track-metadata-selected-language="es_419" track-name="changed" track-type="languageSelector"> Español – América Latina </option> <option value="fr" lang="fr" track-metadata-original-language="en" track-metadata-selected-language="fr" track-name="changed" track-type="languageSelector"> Français </option> <option value="it" lang="it" track-metadata-original-language="en" track-metadata-selected-language="it" track-name="changed" track-type="languageSelector"> Italiano </option> <option value="pl" lang="pl" track-metadata-original-language="en" track-metadata-selected-language="pl" track-name="changed" track-type="languageSelector"> Polski </option> <option value="pt_br" lang="pt_br" track-metadata-original-language="en" track-metadata-selected-language="pt_br" track-name="changed" track-type="languageSelector"> Português – Brasil </option> <option value="vi" lang="vi" track-metadata-original-language="en" track-metadata-selected-language="vi" track-name="changed" track-type="languageSelector"> Tiếng Việt </option> <option value="tr" lang="tr" track-metadata-original-language="en" track-metadata-selected-language="tr" track-name="changed" track-type="languageSelector"> Türkçe </option> <option value="ru" lang="ru" track-metadata-original-language="en" track-metadata-selected-language="ru" track-name="changed" track-type="languageSelector"> Русский </option> <option value="he" lang="he" track-metadata-original-language="en" track-metadata-selected-language="he" track-name="changed" track-type="languageSelector"> עברית&#39; </option> <option value="ar" lang="ar" track-metadata-original-language="en" track-metadata-selected-language="ar" track-name="changed" track-type="languageSelector"> العربيّة </option> <option value="fa" lang="fa" track-metadata-original-language="en" track-metadata-selected-language="fa" track-name="changed" track-type="languageSelector"> فارسی </option> <option value="hi" lang="hi" track-metadata-original-language="en" track-metadata-selected-language="hi" track-name="changed" track-type="languageSelector"> हिंदी </option> <option value="bn" lang="bn" track-metadata-original-language="en" track-metadata-selected-language="bn" track-name="changed" track-type="languageSelector"> বাংলা </option> <option value="th" lang="th" track-metadata-original-language="en" track-metadata-selected-language="th" track-name="changed" track-type="languageSelector"> ภาษาไทย </option> <option value="zh_cn" lang="zh_cn" track-metadata-original-language="en" track-metadata-selected-language="zh_cn" track-name="changed" track-type="languageSelector"> 中文 – 简体 </option> <option value="zh_tw" lang="zh_tw" track-metadata-original-language="en" track-metadata-selected-language="zh_tw" track-name="changed" track-type="languageSelector"> 中文 – 繁體 </option> <option value="ja" lang="ja" track-metadata-original-language="en" track-metadata-selected-language="ja" track-name="changed" track-type="languageSelector"> 日本語 </option> <option value="ko" lang="ko" track-metadata-original-language="en" track-metadata-selected-language="ko" track-name="changed" track-type="languageSelector"> 한국어 </option> </select> </devsite-select> </devsite-language-selector> </nav> </div> </devsite-footer-utility> </section></section> <devsite-sitemask></devsite-sitemask> <devsite-snackbar></devsite-snackbar> <devsite-tooltip></devsite-tooltip> <devsite-heading-link></devsite-heading-link> <devsite-analytics enable-analytics-iframe> <script type="application/json" analytics>[]</script> <script type="application/json" gtm>{"parameters": {"freeTrialEligibleUser": "False", "internalUser": "False", "language": {"machineTranslated": "False", "requested": "en", "served": "en"}, "pageType": "article", "projectName": "Firebase", "scriptsafe": null, "signedIn": "False", "tenant": "firebase", "recommendations": {"sourcePage": "", "sourceType": 0, "sourceRank": 0, "sourceIdenticalDescriptions": 0, "sourceTitleWords": 0, "sourceDescriptionWords": 0, "experiment": ""}}, "tags": ["GTM-N84485"]}</script> </devsite-analytics> <devsite-badger></devsite-badger> <firebase-gtm></firebase-gtm> <script nonce="/1ojlySdzptU/EYa7T90GKLe/xM+PC"> (function(d,e,v,s,i,t,E){d['GoogleDevelopersObject']=i; t=e.createElement(v);t.async=1;t.src=s;E=e.getElementsByTagName(v)[0]; E.parentNode.insertBefore(t,E);})(window, document, 'script', 'https://web.archive.org/web/20210428230634/https://www.gstatic.com/devrel-devsite/prod/v03a3d4c6437e99a41d40c6bdaf7de2967257b2f68f85375303e5316db6e039e3/firebase/js/app_loader.js', '[4,"en",null,"/js/devsite_app_module.js","https://web.archive.org/web/20210428230634/https://www.gstatic.com/devrel-devsite/prod/v03a3d4c6437e99a41d40c6bdaf7de2967257b2f68f85375303e5316db6e039e3","https://web.archive.org/web/20210428230634/https://www.gstatic.com/devrel-devsite/prod/v03a3d4c6437e99a41d40c6bdaf7de2967257b2f68f85375303e5316db6e039e3/firebase","https://web.archive.org/web/20210428230634/https://firebase-dot-devsite-v2-prod.appspot.com",null,null,["/_pwa/firebase/manifest.json","https://web.archive.org/web/20210428230634/https://www.gstatic.com/devrel-devsite/prod/v03a3d4c6437e99a41d40c6bdaf7de2967257b2f68f85375303e5316db6e039e3/images/video-placeholder.svg","https://web.archive.org/web/20210428230634/https://www.gstatic.com/devrel-devsite/prod/v03a3d4c6437e99a41d40c6bdaf7de2967257b2f68f85375303e5316db6e039e3/firebase/images/favicon.png","https://web.archive.org/web/20210428230634/https://www.gstatic.com/devrel-devsite/prod/v03a3d4c6437e99a41d40c6bdaf7de2967257b2f68f85375303e5316db6e039e3/firebase/images/lockup.png","https://web.archive.org/web/20210428230634/https://fonts.googleapis.com/css?family=Google+Sans:400,500|Roboto:400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700|Material+Icons"],1,null,[1,6,8,12,14,17,21,25,40,50,63,70,75,76,80,87,88,91,92,93,97,98,100,101,102,103,105,107,108,111,112,113,115,116,117,118,120,122,124,125,127,129,131,133,134,135],"AIzaSyAP-jjEJBzmIyKR4F-3XITp8yM9T1gEEI8","AIzaSyB6xiKGDR5O3Ak2okS4rLkauxGUG7XP0hg"]') </script> <devsite-a11y-announce></devsite-a11y-announce> </body> </html><!-- FILE ARCHIVED ON 23:06:34 Apr 28, 2021 AND RETRIEVED FROM THE INTERNET ARCHIVE ON 06:22:48 Jan 09, 2025. JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE. ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C. SECTION 108(a)(3)). --> <!-- playback timings (ms): captures_list: 0.65 exclusion.robots: 0.032 exclusion.robots.policy: 0.018 esindex: 0.011 cdx.remote: 9.466 LoadShardBlock: 221.503 (3) PetaboxLoader3.datanode: 262.371 (4) PetaboxLoader3.resolve: 423.283 (2) load_resource: 558.527 -->

Pages: 1 2 3 4 5 6 7 8 9 10