CINXE.COM

Learn about using and managing API keys for Firebase

<!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/projects/api-keys","20210426052445","https://web.archive.org/","web","/_static/", "1619414685"); </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/20210426052445/https://firebase.google.com/_pwa/firebase/manifest.json" crossorigin="use-credentials"> <link rel="preconnect" href="//web.archive.org/web/20210426052445/https://www.gstatic.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20210426052445/https://fonts.gstatic.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20210426052445/https://fonts.googleapis.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20210426052445/https://apis.google.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20210426052445/https://www.google-analytics.com/" crossorigin> <link rel="stylesheet" href="//web.archive.org/web/20210426052445cs_/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/20210426052445cs_/https://www.gstatic.com/devrel-devsite/prod/vdb246b8cc5a5361484bf12c07f2d17c993026d30a19ea3c7ace6f0263f62c0dd/firebase/css/app.css"> <link rel="shortcut icon" href="https://web.archive.org/web/20210426052445im_/https://www.gstatic.com/devrel-devsite/prod/vdb246b8cc5a5361484bf12c07f2d17c993026d30a19ea3c7ace6f0263f62c0dd/firebase/images/favicon.png"> <link rel="apple-touch-icon" href="https://web.archive.org/web/20210426052445im_/https://www.gstatic.com/devrel-devsite/prod/vdb246b8cc5a5361484bf12c07f2d17c993026d30a19ea3c7ace6f0263f62c0dd/firebase/images/touchicon-180.png"><link rel="canonical" href="https://web.archive.org/web/20210426052445/https://firebase.google.com/docs/projects/api-keys"><link rel="search" type="application/opensearchdescription+xml" title="Firebase" href="https://web.archive.org/web/20210426052445/https://firebase.google.com/s/opensearch.xml"> <title>Learn about using and managing API keys for Firebase</title> <meta property="og:title" content="Learn about using and managing API keys for Firebase"> <meta property="og:url" content="https://web.archive.org/web/20210426052445/https://firebase.google.com/docs/projects/api-keys"> <meta property="og:locale" content="en"> <meta name="gtm_var" data-key="docType" data-value="other"> </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/20210426052445/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/20210426052445im_/https://www.gstatic.com/devrel-devsite/prod/vdb246b8cc5a5361484bf12c07f2d17c993026d30a19ea3c7ace6f0263f62c0dd/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445im_/https://www.gstatic.com/devrel-devsite/prod/vdb246b8cc5a5361484bf12c07f2d17c993026d30a19ea3c7ace6f0263f62c0dd/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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-20210420-r00-rc00.434637168793748256" 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-20210420-r00-rc00.434637168793748256" 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">Learn about using and managing API keys for Firebase</h1> <devsite-toc class="devsite-nav" devsite-toc-embedded> </devsite-toc> <div class="devsite-article-body clearfix "> <p>An API key is a unique string that&#39;s used to route requests to your Firebase project when interacting with Firebase and Google services. This page describes basic information about API keys as well as best practices for using and managing API keys with Firebase apps.</p> <h2 id="general-info" data-text="General information about API keys and Firebase">General information about API keys and Firebase</h2> <h3 id="api-keys-for-firebase-are-different" data-text="API keys for Firebase are different from typical API keys">API keys for Firebase are different from typical API keys</h3> <p><strong>Unlike how API keys are typically used, API keys for Firebase services are <em>not</em> used to control access to backend resources</strong>; that can only be done with Firebase Security Rules. Usually, you need to fastidiously guard API keys (for example, by using a vault service or setting the keys as environment variables); however, API keys for Firebase services are ok to include in code or checked-in config files.</p> <p>Although API keys for Firebase services are safe to include in code, there are a few specific cases when you should enforce limits for your API key; for example, if you&#39;re using Firebase ML or using Firebase Authentication with the email/password sign-in method. Learn more about these cases later on this page.</p> <aside class="caution"><strong>Secure your database and Cloud Storage data by using <a href="/web/20210426052445/https://firebase.google.com/docs/rules">Firebase Security Rules</a></strong>, not by restricting and/or obscuring your API keys. </aside> <h3 id="create-api-keys" data-text="Creating API keys">Creating API keys</h3> <p><img src="/web/20210426052445im_/https://firebase.google.com/docs/projects/images/api-keys-from-firebase-cloud-console.png" alt="API keys automatically created by Firebase for your Firebase Apps" class="attempt-right screenshot" width="290px"></p> <p>Firebase automatically creates API keys for your project when you do any of the following:</p> <ul> <li>Create a Firebase project &gt; <code translate="no" dir="ltr">Browser key</code> auto-created</li> <li>Create a Firebase iOS App &gt; <code translate="no" dir="ltr">iOS key</code> auto-created</li> <li>Create a Firebase Android App &gt; <code translate="no" dir="ltr">Android key</code> auto-created</li> </ul> <aside class="special"><strong>Important:</strong><span> The API keys auto-created by Firebase, by default, have no restrictions. However, there are a few <a href="#apply-restrictions">specific cases</a> when you should enforce limits for your API key.</span></aside> <p>You can also create your own API keys in the <a href="//web.archive.org/web/20210426052445/https://console.cloud.google.com/apis/credentials" class="external">Google Cloud Console</a>, for example <a href="#test-vs-prod-keys">for development or debugging</a>. Learn more about when this might be recommended later on this page.</p> <h3 id="find-api-keys" data-text="Finding your API keys">Finding your API keys</h3> <p>You can view and manage <em>all</em> your project&#39;s API keys in the <a href="//web.archive.org/web/20210426052445/https://console.cloud.google.com/apis/credentials" class="external">APIs &amp; Services &gt; Credentials</a> panel in the Google Cloud Console.</p> <p>You can also find which <a href="#faq-auto-matching-app-to-key">API key is automatically matched to a Firebase App</a> in the following places. By default, all of your project&#39;s Firebase Apps <em>for the same platform</em> (iOS vs Android vs Web) will use the same API key.</p> <ul> <li><p><strong>Firebase iOS Apps</strong> — Find an app&#39;s auto-matched API key in the Firebase config file, <code translate="no" dir="ltr"><nobr>GoogleService-Info.plist</nobr></code>, in the <code translate="no" dir="ltr">API_KEY</code> field.</p></li> <li><p><strong>Firebase Android Apps</strong> — Find an app&#39;s auto-matched API key in the Firebase config file, <code translate="no" dir="ltr"><nobr>google-services.json</nobr></code>, in the <code translate="no" dir="ltr">current_key</code> field.</p></li> <li><p><strong>Firebase Web Apps</strong> — Find an app&#39;s auto-matched API key in the Firebase config object, in the <code translate="no" dir="ltr">apiKey</code> field.</p></li> </ul> <h3 id="use-api-keys" data-text="Using an API key">Using an API key</h3> <p>API keys are used to identify your Firebase project when interacting with Firebase/Google services. Specifically, they&#39;re used to associate API requests with your project for quota and billing. They&#39;re also useful for accessing public data.</p> <p>For example, you can explicitly use an API key by passing its value into a REST API call as a query parameter. This example shows how you might make a request to the <a href="/web/20210426052445/https://firebase.google.com/docs/reference/dynamic-links/link-shortener">Dynamic Links link shortener API</a>:</p> <pre translate="no" dir="ltr"> POST https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key=<var translate="no">API_KEY</var> </pre> <p>When your app makes a call to a Firebase API, your app will automatically look in the Firebase config file/object for your project&#39;s API key. You can, however, set your API keys using a different mechanism, including environment variables.</p> <h2 id="apply-restrictions" data-text="Apply restrictions to API keys (recommended)">Apply restrictions to API keys <em>(recommended)</em></h2> <p>Although it&#39;s not necessary to treat an API key for Firebase services as a secret, there are some specific cases (see below) in which you might want to take additional measures to protect your project from misuse of the API key.</p> <aside class="note"><strong>Note:</strong><span> If you apply restrictions to an API key that&#39;s used for accessing Firebase services, and you&#39;re getting errors, you may need to include the Firebase Management API in the list of allowed APIs. This is especially true if you use Google Analytics with a web app.</span></aside> <aside class="caution">If an API key is currently in use by a production app, you need to be cautious about adding restrictions to that API key. You should test your restrictions in a testing app and with a <a href="#test-vs-prod-keys">test API key</a> before adding any restrictions to your production API key.</aside> <h3 id="apply-restrictions-password-based-auth" data-text="Password-based authentication">Password-based authentication</h3> <p>If you use password-based Firebase Authentication and someone gets hold of your API key, they will <strong>not</strong> be able to access any of your Firebase project&#39;s database or Cloud Storage data <em>as long as this data is protected by <a href="/web/20210426052445/https://firebase.google.com/docs/rules">Firebase Security Rules</a></em>. They could, however, use your API key to access Firebase&#39;s authentication endpoints and make authentication requests against your project.</p> <p>To mitigate against the possibility that someone might use a stolen API key to attempt a brute force attack, you can tighten the default quota of the <code translate="no" dir="ltr">identitytoolkit.googleapis.com</code> endpoints to reflect the normal traffic expectations of your app. Be aware that if you tighten this quota and your app suddenly gains users, you might get sign-in errors until you increase the quota. You can change your project&#39;s API quotas in the <a href="//web.archive.org/web/20210426052445/https://console.cloud.google.com/apis/api/identitytoolkit.googleapis.com/quotas?project=_" class="external">Google Cloud Console</a>.</p> <h3 id="apply-restrictions-ml-cloud-apis" data-text="Firebase ML and Google Cloud APIs">Firebase ML and Google Cloud APIs</h3> <p>Although API keys used for Firebase services do not generally need to be treated as secret, you should take some extra precautions with API keys used to grant access to Firebase ML and Google Cloud metered services.</p> <p>For example, if you use Firebase ML&#39;s Cloud Vision APIs on iOS, you should create separate API keys that you use only for accessing the Cloud Vision APIs as described in <a href="/web/20210426052445/https://firebase.google.com/docs/ml/ios/secure-api-key">Protect your Firebase ML iOS app&#39;s Cloud credentials</a>.</p> <p>If you use any other Google Cloud API (on any platform) that is not automatically enabled by Firebase, you should consider also creating separate API keys for use with those APIs. See the Firebase ML document linked above for an example of how you can accomplish this.</p> <p>By using separate API keys for non-Firebase APIs, you can rotate or replace the keys when necessary and <a href="//web.archive.org/web/20210426052445/https://cloud.google.com/docs/authentication/api-keys#api_key_restrictions" class="external">add additional restrictions to the API keys</a> without disrupting your use of Firebase services.</p> <h2 id="test-vs-prod-keys" data-text="Use environment-specific API keys (recommended)">Use environment-specific API keys <em>(recommended)</em></h2> <p>If you set up different Firebase projects for different environments, such as staging and production, it&#39;s important that each app instance interacts with its corresponding Firebase project. For example, your staging app instance should never talk to your production Firebase project. This also means that your staging app needs to use API keys associated with your staging Firebase project.</p> <p>To reduce problems promoting code changes from development to staging to production, instead of including API keys in the code itself, either set them as environment variables or include them in a configuration file.</p> <p>Note that if you&#39;re using the Firebase Local Emulator Suite for development along with Firebase ML, you must create and use a debug-only API key. Instructions for creating that kind of key are found in the <a href="/web/20210426052445/https://firebase.google.com/docs/ml/android/secure-api-key#3_create_and_use_a_debug-only_api_key">Firebase ML docs</a>.</p> <h2 id="faqs" data-text="FAQs">FAQs</h2> <p><section class="expandable" id="faq-invalid-api-key"> <h4 class="showalways" id="faq-invalid-api-key" data-text="I got an email or error that my API key is invalid. What happened and how do I fix this?">I got an email or error that my API key is invalid. What happened and how do I fix this?</h4></p> <p>Here are a few of the most common causes for invalid API keys:</p> <ul> <li><p>The API key has <a href="//web.archive.org/web/20210426052445/https://cloud.google.com/docs/authentication/api-keys#api_key_restrictions" class="external">&quot;API Key Restrictions&quot;</a> applied to it that make it unmatchable to the app attempting to use the key (&quot;Application Restrictions&quot;) or unusable for the API being called (&quot;API Restrictions&quot;).</p></li> <li><p>The API key was deleted from the project in the Google Cloud Console.</p></li> <li><p>The API key was not created for the Project ID listed in the app&#39;s Firebase config file/object.</p></li> </ul> <p>One way to fix this issue is to <a href="//web.archive.org/web/20210426052445/https://support.google.com/firebase/answer/7015592" class="external">obtain the updated version of your app&#39;s Firebase config file/object</a>, then <em>replace</em> your old config file/object with the new updated file/object. Before sending a config file for download or displaying a config object in the console, Firebase checks that the API key(s) listed <a href="#faq-auto-matching-app-to-key">match to the app(s)</a>.</p> <p></section></p> <p><section class="expandable" id="faq-failed-to-fetch-measurement-id-error"> <h4 class="showalways" id="faq-failed-to-fetch-measurement-id-error" data-text="I'm getting this error: &quot;Failed to fetch this Firebase app's measurement ID from the server.&quot; How do I fix it?">I'm getting this error: "Failed to fetch this Firebase app's measurement ID from the server." How do I fix it?</h4></p> <p>The API key used by your web app probably has <a href="//web.archive.org/web/20210426052445/https://cloud.google.com/docs/authentication/api-keys#adding_api_restrictions" class="external">&quot;API Restrictions&quot;</a> applied to it. If this is the case, make sure that the Firebase Management API is in the list of allowed APIs.</p> <p></section></p> <p><section class="expandable" id="faq-move-api-key-to-another-project"> <h4 class="showalways" id="faq-move-api-key-to-another-project" data-text="Can I move an API key from one Firebase project to another?">Can I move an API key from one Firebase project to another?</h4></p> <p>No, an API key only identifies a specific project and cannot be moved to another project.</p> <p></section></p> <p><section class="expandable" id="faq-auto-matching-app-to-key"> <h4 class="showalways" id="faq-auto-matching-app-to-key" data-text="How does Firebase know which API key to match to an app (like in the Firebase config file/object)?">How does Firebase know which API key to match to an app (like in the Firebase config file/object)?</h4></p> <p>When you first <a href="//web.archive.org/web/20210426052445/https://support.google.com/firebase/answer/7015592" class="external">obtain your app&#39;s Firebase config file/object</a>, Firebase checks if there are any existing API keys in your project that have <a href="//web.archive.org/web/20210426052445/https://cloud.google.com/docs/authentication/api-keys#adding_application_restrictions" class="external">&quot;Application Restrictions&quot;</a> that match the app (for example, a matching bundle ID for the iOS app).</p> <p>If Firebase doesn&#39;t find any restricted keys that match, then it will list in the config file/object the <code translate="no" dir="ltr">iOS key</code> for iOS apps, the <code translate="no" dir="ltr">Android key</code> for Android apps, and the <code translate="no" dir="ltr">Browser key</code> for web apps (assuming that these keys exist and have no &quot;Application Restrictions&quot; that keep them from matching to that app).</p> <p></section></p> <p><section class="expandable" id="faq-manually-delete-key-from-config"> <h4 class="showalways" id="faq-manually-delete-key-from-config" data-text="Can I manually delete the API key and field from my Firebase config file/object?">Can I manually delete the API key and field from my Firebase config file/object?</h4></p> <p>Yes, you can manually delete your API key from your config file/object. However, <strong>you must provide some other mechanism for your app to access an API key</strong> (like via an environment variable). Otherwise, any calls to Firebase services will fail.</p> <p></section></p> <p><section class="expandable" id="faq-manually-edit-key-in-config"> <h4 class="showalways" id="faq-manually-edit-key-in-config" data-text="Can I manually edit my Firebase config file/object with different API keys?">Can I manually edit my Firebase config file/object with different API keys?</h4></p> <p>Yes, you can manually edit a config file/object to associate a different API key with an app.</p> <aside class="caution">Manually editing the API key in your Firebase config file/object is possible, but <strong>not usually recommended</strong>. It increases the chances of issues with accessing Firebase services. However, if you do edit your config file/object, check the following: <ul> <li>The API key is scoped to the Project ID listed in the config file/object. </li> <li>There are no <a href="//web.archive.org/web/20210426052445/https://cloud.google.com/docs/authentication/api-keys#api_key_restrictions" class="external">"API Key Restrictions"</a> that would inhibit the API key from being used with that app. </li> </ul> </aside> <p>Note that if you <a href="//web.archive.org/web/20210426052445/https://support.google.com/firebase/answer/7015592" class="external">re-obtain your app&#39;s config file/object</a> from the console, it will always list the API keys that <a href="#faq-auto-matching-app-to-key">Firebase automatically matches to that app</a>. So, you&#39;ll need to repeat your manual edits, as needed.</p> <p></section></p> <p><section class="expandable" id="faq-two-keys-for-same-app-in-config"> <h4 class="showalways" id="faq-two-keys-for-same-app-in-config" data-text="Can I have two API keys listed for the same Firebase App in my Firebase config file/object?">Can I have two API keys listed for the same Firebase App in my Firebase config file/object?</h4></p> <ul> <li><p><strong>Firebase iOS Apps</strong> — Each app has its own config file and can have only one API key listed.</p></li> <li><p><strong>Firebase Android Apps</strong> — All Android apps in the Firebase project are listed in the same config file, and <em>each</em> app can only have one API key listed. Each app in this config file can have a different key listed, though.</p></li> <li><p><strong>Firebase Web Apps</strong> — Each app has its own config object and can have only one API key listed.</p></li> </ul> <p>You <em>can</em> use multiple API keys with one app, though. You must provide a mechanism for your app to access these other API keys, like via an environment variable. The mechanism to access the other API keys just can&#39;t depend on those API keys being listed in your Firebase config file/object.</p> <p></section></p> <p><section class="expandable" id="faq-delete-key-from-console"> <h4 class="showalways" id="faq-delete-key-from-console" data-text="What happens if I delete an API key listed in the Google Cloud Console?">What happens if I delete an API key listed in the Google Cloud Console?</h4></p> <p>If you delete an API key that&#39;s in use by an app, then API calls from that app will fail. You may get reports, emails, or errors that you&#39;re attempting to use an API key that is invalid.</p> <p>Deleting an API key is permanent and cannot be undone.</p> <p></section></p> </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-20210420-r00-rc00.434637168793748256" 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-20210420-r00-rc00.434637168793748256" 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/20210426052445/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/20210426052445/https://www.apache.org/licenses/LICENSE-2.0">Apache 2.0 License</a>. For details, see the <a href="https://web.archive.org/web/20210426052445/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-20 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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445im_/https://www.gstatic.com/devrel-devsite/prod/vdb246b8cc5a5361484bf12c07f2d17c993026d30a19ea3c7ace6f0263f62c0dd/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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/20210426052445/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="hBkt337X1Q0qCs+QJqCQfjdneOXUnV"> (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/20210426052445/https://www.gstatic.com/devrel-devsite/prod/vdb246b8cc5a5361484bf12c07f2d17c993026d30a19ea3c7ace6f0263f62c0dd/firebase/js/app_loader.js', '[4,"en",null,"/js/devsite_app_module.js","https://web.archive.org/web/20210426052445/https://www.gstatic.com/devrel-devsite/prod/vdb246b8cc5a5361484bf12c07f2d17c993026d30a19ea3c7ace6f0263f62c0dd","https://web.archive.org/web/20210426052445/https://www.gstatic.com/devrel-devsite/prod/vdb246b8cc5a5361484bf12c07f2d17c993026d30a19ea3c7ace6f0263f62c0dd/firebase","https://web.archive.org/web/20210426052445/https://firebase-dot-devsite-v2-prod.appspot.com",null,null,["/_pwa/firebase/manifest.json","https://web.archive.org/web/20210426052445/https://www.gstatic.com/devrel-devsite/prod/vdb246b8cc5a5361484bf12c07f2d17c993026d30a19ea3c7ace6f0263f62c0dd/images/video-placeholder.svg","https://web.archive.org/web/20210426052445/https://www.gstatic.com/devrel-devsite/prod/vdb246b8cc5a5361484bf12c07f2d17c993026d30a19ea3c7ace6f0263f62c0dd/firebase/images/favicon.png","https://web.archive.org/web/20210426052445/https://www.gstatic.com/devrel-devsite/prod/vdb246b8cc5a5361484bf12c07f2d17c993026d30a19ea3c7ace6f0263f62c0dd/firebase/images/lockup.png","https://web.archive.org/web/20210426052445/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,133,134,135],"AIzaSyAP-jjEJBzmIyKR4F-3XITp8yM9T1gEEI8","AIzaSyB6xiKGDR5O3Ak2okS4rLkauxGUG7XP0hg"]') </script> <devsite-a11y-announce></devsite-a11y-announce> </body> </html><!-- FILE ARCHIVED ON 05:24:45 Apr 26, 2021 AND RETRIEVED FROM THE INTERNET ARCHIVE ON 14:15:53 Jan 07, 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.778 exclusion.robots: 0.038 exclusion.robots.policy: 0.022 esindex: 0.014 cdx.remote: 22.865 LoadShardBlock: 273.482 (3) PetaboxLoader3.resolve: 453.113 (3) PetaboxLoader3.datanode: 134.863 (4) load_resource: 347.417 -->

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