CINXE.COM
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/libraries","20210124035004","https://web.archive.org/","web","/_static/", "1611460204"); </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/20210124035004/https://firebase.google.com/_pwa/firebase/manifest.json" crossorigin="use-credentials"> <link rel="preconnect" href="//web.archive.org/web/20210124035004/https://www.gstatic.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20210124035004/https://fonts.gstatic.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20210124035004/https://fonts.googleapis.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20210124035004/https://apis.google.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20210124035004/https://www.google-analytics.com/" crossorigin> <link rel="stylesheet" href="//web.archive.org/web/20210124035004cs_/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/20210124035004cs_/https://www.gstatic.com/devrel-devsite/prod/vbd4700e58d826f0eab371eadc20e0e343567df356800794a790eebf2ac059db2/firebase/css/app.css"> <noscript> </noscript> <link rel="shortcut icon" href="https://web.archive.org/web/20210124035004im_/https://www.gstatic.com/devrel-devsite/prod/vbd4700e58d826f0eab371eadc20e0e343567df356800794a790eebf2ac059db2/firebase/images/favicon.png"> <link rel="apple-touch-icon" href="https://web.archive.org/web/20210124035004im_/https://www.gstatic.com/devrel-devsite/prod/vbd4700e58d826f0eab371eadc20e0e343567df356800794a790eebf2ac059db2/firebase/images/touchicon-180.png"><link rel="canonical" href="https://web.archive.org/web/20210124035004/https://firebase.google.com/docs/libraries"><link rel="search" type="application/opensearchdescription+xml" title="Firebase" href="https://web.archive.org/web/20210124035004/https://firebase.google.com/s/opensearch.xml"> <title>Firebase</title> <meta property="og:title" content="Firebase"> <meta property="og:url" content="https://web.archive.org/web/20210124035004/https://firebase.google.com/docs/libraries"> <meta property="og:locale" content="en"> <meta name="gtm_var" data-key="docType" data-value="other"> </head> <body type="article" theme="firebase-theme" class="" layout="full" 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/20210124035004/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/20210124035004im_/https://www.gstatic.com/devrel-devsite/prod/vbd4700e58d826f0eab371eadc20e0e343567df356800794a790eebf2ac059db2/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/20210124035004/https://firebase.google.com/products-build" class="gc-analytics-event " track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="products" aria-haspopup="true" aria-expanded="false" data-category="Site-Wide Custom Events" data-label="Tab: Products"> Products </a> <a href="#" aria-haspopup="true" aria-expanded="false" aria-label="Dropdown menu" role="button" track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="products" data-category="Site-Wide Custom Events" data-label="Tab: Products" tabindex="-1" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></a> <div class="devsite-tabs-dropdown" aria-label="submenu"> <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/20210124035004/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/20210124035004/https://firebase.google.com/products-release" track-type="navMenu" track-name="Release & Monitor" track-metadata-position="nav" track-metadata-href="https://firebase.google.com/products-release" tooltip> <div class="devsite-nav-item-title"> Release & Monitor </div> </a> </li> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210124035004/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/20210124035004/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/20210124035004/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 active> <a href="https://web.archive.org/web/20210124035004/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> </tab> <tab> <a href="https://web.archive.org/web/20210124035004/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/20210124035004/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/20210124035004/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" 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"> עברית' </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/20210124035004/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/20210124035004/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/20210124035004/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> <a href="https://web.archive.org/web/20210124035004/https://firebase.google.com/docs/guides" class="gc-analytics-event " track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="guides" data-category="Site-Wide Custom Events" data-label="Tab: Guides"> Guides </a> </tab> <tab> <a href="https://web.archive.org/web/20210124035004/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/20210124035004/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 active> <a href="https://web.archive.org/web/20210124035004/https://firebase.google.com/docs/libraries" class="gc-analytics-event " track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="libraries" aria-label="Libraries, selected" 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 hidden> <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/20210124035004/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/20210124035004im_/https://www.gstatic.com/devrel-devsite/prod/vbd4700e58d826f0eab371eadc20e0e343567df356800794a790eebf2ac059db2/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/20210124035004/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/20210124035004/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/20210124035004/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/20210124035004/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"> <li class="devsite-nav-item"> <a href="/web/20210124035004/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/20210124035004/https://firebase.google.com/docs/guides" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Guides" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="guides"> <span class="devsite-nav-text" tooltip> Guides </span> <span class="devsite-nav-icon material-icons" data-icon="forward"> </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210124035004/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/20210124035004/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/20210124035004/https://firebase.google.com/docs/libraries" class="devsite-nav-title gc-analytics-event devsite-nav-active" 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/20210124035004/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/20210124035004/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/20210124035004/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="Products" aria-label="Side menu" hidden> <li class="devsite-nav-item"> <a href="/web/20210124035004/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/20210124035004/https://firebase.google.com/products-release" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Release & Monitor" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="release&Monitor"> <span class="devsite-nav-text" tooltip> Release & Monitor </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210124035004/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> </div> </div> </nav> </devsite-book-nav> <section id="gc-wrapper"> <main role="main" class="devsite-main-content"> <devsite-toc class="devsite-nav" disabled></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; } .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><style> /* Styles inlined from /styles/filterable-table.css */ .firebase-filterable-table .google-visualization-table { border-radius: 0; box-shadow: none; } .firebase-filterable-table .devsite-charts-table-header-row { background: rgba(236, 239, 241, .54); } .firebase-filterable-table table.google-visualization-table-table .google-visualization-table-th { background: #f7f7f7; border-bottom: 1px solid rgba(0, 0, 0, .12); font-size: 12px; font-weight: 500; height: auto; line-height: 16px; padding: 8px 18px; } .filter-headings { align-items: center; background: rgba(236, 239, 241, .54); display: flex; padding: 20px 18px; } .filter-label { color: rgba(0, 0, 0, .54); font-size: 14px; letter-spacing: 0; line-height: 24px; padding-right: 12px; white-space: nowrap; } .filter-heading { padding: 0 24px; } .filter-heading .google-visualization-controls-label { display: none; } .filter-heading input[type="text"] { background: none; border: 0; cursor: pointer; font-size: 14px; line-height: 24px; padding: 0; } .filter-heading input[type="text"]:focus { padding-bottom: 0; } .firebase-filterable-table .gmp-platform-icons { cursor: pointer; margin: 0 4px; } .firebase-filterable-table .gmp-platform-icons img { height: 32px; vertical-align: middle; } .filter-heading .goog-combobox::after { display: inline-block; font-size: 24px; } .firebase-filterable-table tr { background: 0; } .firebase-filterable-table table.google-visualization-table-table .google-visualization-table-td { background: rgba(236, 239, 241, .26); font-size: 16px; height: auto; padding: 24px 18px; } .filter-content h2 { border-bottom: 0; color: rgba(0, 0, 0, .87); font-size: 24px; letter-spacing: 0px; line-height: 32px; } .firebase-filterable-table .devsite-charts-table-row td:first-child { color: rgba(0, 0, 0, .87); } .firebase-filterable-table td:first-child { width: 25%; } .firebase-filterable-table td:last-child { width: 15%; } .firebase-filterable-table .gmp-platform-icons.material-icons { font-family: 'GMP Icons'; } .firebase-filterable-table .google-visualization-table-table tr:last-of-type { border-bottom: 0; } .devsite-rating-container { display: none; } .firebase-filterable-table .sample-subtitle { color: #757575; } .google-visualization-table { border-radius: 2px; box-shadow: 0 1px 5px 0 rgba(0, 0, 0, .26); } table.google-visualization-table-table { margin: 0; } table.google-visualization-table-table th, table.google-visualization-table-table .devsite-charts-table-row td { color: #757575; font-size: 12px; } .google-visualization-table-table tr:last-of-type { border-bottom: 1px solid #e0e0e0; } .google-visualization-table-div-page { float: right; margin-right: 16px; padding: 12px 0 8px; width: 64px; } .google-visualization-table-page-prev::after { content: 'navigate_before'; } .google-visualization-table-page-next::after { content: 'navigate_next'; } .google-visualization-table-sortind { position: relative; } .google-visualization-table-th.sort-descending, .google-visualization-table-th.sort-ascending { color: #000; } .sort-descending .google-visualization-table-sortind::after, .sort-ascending .google-visualization-table-sortind::after { content: 'arrow_downward'; font-size: 16px; height: 16px; position: absolute; right: -20px; top: 0; -webkit-transform: rotate(0deg); transform: rotate(0deg); -webkit-transition: -webkit-transform .2s; transition: transform .2s; } .sort-ascending .google-visualization-table-sortind::after { -webkit-transform: rotate(-180deg); transform: rotate(-180deg); } .sort-descending span.google-visualization-table-sortind, .sort-ascending span.google-visualization-table-sortind { border: none; overflow: visible; } .unsorted .google-visualization-table-sortind { display: none; } .google-visualization-table-page-numbers { display: none; } .firebase-support-table-wrapper .google-visualization-table { border-radius: 2px; box-shadow: 0 0 2px 0 rgba(0, 0, 0, .12), 0 2px 2px 0 rgba(0, 0, 0, .24); } .devsite-charts-table { margin-top: 40px; } .devsite-charts-table-header-row { background: #f7f7f7; border-top: 0; } </style> <div class="devsite-banner devsite-banner-announcement"> <div class="devsite-banner-message"> <div class="devsite-banner-message-text"> <style> .devsite-banner-announcement:not(.devsite-banner-tenant) { background: #202124; color: white; font-weight: 500; } .devsite-banner-announcement a { color: white; 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> Google is committed to advancing racial equity for Black communities. <a href="https://web.archive.org/web/20210124035004/https://google.com/racialequity" class="gc-analytics-event" data-category="Announcement" data-label="Racial Equity">See how.</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/20210124035004/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/20210124035004/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/20210124035004/https://firebase.google.com/docs/libraries" 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=""> Libraries </a> </li> </ul> </div> <devsite-feedback position="header" project-name="Firebase" product-id="719752" bucket="" context="" version="t-devsite-webserver-20210114-r02-rc00.432497685912973661" 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="star-rating"> <button> Send feedback </button> </devsite-feedback> <devsite-toc class="devsite-nav" devsite-toc-embedded disabled> </devsite-toc> <div class="devsite-article-body clearfix devsite-no-page-title"> <div class="filter-headings"> <span class="filter-label"><i class="material-icons" aria-hidden="true" translate="no">filter_list</i> Filter by</span> <devsite-select id="filter1" class="filter-heading"> <select> <option>All platforms</option> <option>Android</option> <option>C++</option> <option>Go</option> <option>iOS</option> <option>Java</option> <option>Node.js</option> <option>Python</option> <option>Unity</option> <option>Web</option> </select> </devsite-select> </div> <div class="filter-content"> <devsite-filter select-el-container-id="filter1" sortable="0"> <h2 id="client-sdks" data-text="Client SDKs">Client SDKs</h2> <p> Official Firebase SDKs for use in web and mobile apps </p> <div id="sdk-content" class="firebase-filterable-table"> <table> <thead> <tr> <th>Title</th> <th>Description</th> <th class="hidden">_platforms</th> <th>Docs</th> <th>Source</th> </tr> </thead> <tbody class="list"> <tr> <td>Firebase Android SDK</td> <td>The official Firebase Android SDK</td> <td class="hidden">Android</td> <td><a href="/web/20210124035004/https://firebase.google.com/docs/android/setup"><span class="gmp-platform-icons gmp-icon-android material-icons" data-tooltip="Android supported" aria-hidden="true" translate="no">plat_android</span></a></td> <td><a href="https://web.archive.org/web/20210124035004/https://github.com/firebase/firebase-android-sdk">GitHub</a></td> </tr> <tr> <td>Firebase iOS SDK</td> <td>The official Firebase iOS SDK</td> <td class="hidden">iOS</td> <td><a href="/web/20210124035004/https://firebase.google.com/docs/ios/setup"><span class="gmp-platform-icons gmp-icon-ios material-icons" data-tooltip="iOS supported" aria-hidden="true" translate="no">plat_ios</span></a></td> <td><a href="https://web.archive.org/web/20210124035004/https://github.com/firebase/firebase-ios-sdk">GitHub</a></td> </tr> <tr> <td>Firebase JavaScript SDK</td> <td>The official Firebase JavaScript SDK</td> <td class="hidden">Web</td> <td><a href="/web/20210124035004/https://firebase.google.com/docs/web/setup"><span class="gmp-platform-icons gmp-icon-web material-icons" data-tooltip="Web supported" aria-hidden="true" translate="no">plat_web</span></a></td> <td><a href="https://web.archive.org/web/20210124035004/https://github.com/firebase/firebase-js-sdk">GitHub</a></td> </tr> <tr> <td>Firebase C++ SDK</td> <td>The official Firebase C++ SDK</td> <td class="hidden">C++</td> <td><a href="/web/20210124035004/https://firebase.google.com/docs/cpp/setup"><span class="gmp-platform-icons gmp-icon-cpp material-icons" data-tooltip="C++ supported" aria-hidden="true" translate="no">plat_cpp</span></a></td> <td><a href="https://web.archive.org/web/20210124035004/https://github.com/firebase/firebase-cpp-sdk">GitHub</a></td> </tr> <tr> <td>Firebase Unity SDK</td> <td>The official Firebase Unity SDK</td> <td class="hidden">Unity</td> <td><a href="/web/20210124035004/https://firebase.google.com/docs/unity/setup"><span class="gmp-platform-icons gmp-icon-unity material-icons" data-tooltip="Unity supported" aria-hidden="true" translate="no">plat_unity</span></a></td> <td>N/A</td> </tr> </tbody> </table> </div> </devsite-filter> <devsite-filter select-el-container-id="filter1" sortable="0"> <h2 id="admin-sdks" data-text="Admin SDKs">Admin SDKs</h2> <p> Official Firebase SDKs for performing administrative actions in privileged environments </p> <div id="sdk-content" class="firebase-filterable-table"> <table> <thead> <tr> <th>Title</th> <th>Description</th> <th class="hidden">_platforms</th> <th>Docs</th> <th>Source</th> </tr> </thead> <tbody class="list"> <tr> <td>Firebase Node.js Admin SDK</td> <td>The official Firebase Node.js Admin SDK</td> <td class="hidden">Node.js</td> <td><a href="/web/20210124035004/https://firebase.google.com/docs/admin/setup"><span class="gmp-platform-icons gmp-icon-node material-icons" data-tooltip="Node.js supported" aria-hidden="true" translate="no">plat_node</span></a></td> <td><a href="https://web.archive.org/web/20210124035004/https://github.com/firebase/firebase-admin-node">GitHub</a></td> </tr> <tr> <td>Firebase Java Admin SDK</td> <td>The official Firebase Java Admin SDK</td> <td class="hidden">Java</td> <td><a href="/web/20210124035004/https://firebase.google.com/docs/admin/setup"><span class="gmp-platform-icons gmp-icon-java material-icons" data-tooltip="Java supported" aria-hidden="true" translate="no">plat_java</span></a></td> <td><a href="https://web.archive.org/web/20210124035004/https://github.com/firebase/firebase-admin-java">GitHub</a></td> </tr> <tr> <td>Firebase Python Admin SDK</td> <td>The official Firebase Python Admin SDK</td> <td class="hidden">Python</td> <td><a href="/web/20210124035004/https://firebase.google.com/docs/admin/setup"><span class="gmp-platform-icons gmp-icon-python material-icons" data-tooltip="Python supported" aria-hidden="true" translate="no">plat_python</span></a></td> <td><a href="https://web.archive.org/web/20210124035004/https://github.com/firebase/firebase-admin-python">GitHub</a></td> </tr> <tr> <td>Firebase Go Admin SDK</td> <td>The official Firebase Go Admin SDK</td> <td class="hidden">Go</td> <td><a href="/web/20210124035004/https://firebase.google.com/docs/admin/setup"><span class="gmp-platform-icons gmp-icon-golang material-icons" data-tooltip="Go supported" aria-hidden="true" translate="no">plat_go</span></a></td> <td><a href="https://web.archive.org/web/20210124035004/https://github.com/firebase/firebase-admin-go">GitHub</a></td> </tr> </tbody> </table> </div> </devsite-filter> <devsite-filter select-el-container-id="filter1" sortable="0"> <h2 id="command-line-tools" data-text="Command Line Tools">Command Line Tools</h2> <p> Tools for interacting with Firebase from the command line </p> <div id="utitities-content" class="firebase-filterable-table"> <table> <thead> <tr> <th>Title</th> <th>Description</th> <th class="hidden">_platforms</th> <th>Docs</th> <th>Source</th> </tr> </thead> <tbody class="list"> <tr> <td>Firebase Tools</td> <td>The Firebase command line tool (Firebase CLI)</td> <td class="hidden">Web</td> <td> <a class="link gc-analytics-event" data-category="exitLinks" data-action="linkClick" data-label="library-firebase-tools" href="https://web.archive.org/web/20210124035004/https://firebaseopensource.com/projects/firebase/firebase-tools"> <span class="gmp-platform-icons gmp-icon-node material-icons" data-tooltip="Node.js supported" aria-hidden="true" translate="no">plat_node</span> </a> </td> <td><a href="https://web.archive.org/web/20210124035004/https://github.com/firebase/firebase-tools">GitHub</a></td> </tr> </tbody> </table> </div> </devsite-filter> <devsite-filter select-el-container-id="filter1" sortable="0"> <h2 id="framework-libraries" data-text="Framework Libraries">Framework Libraries</h2> <p> Libraries for binding Firebase to popular development frameworks. While we recommend these libraries for developers looking to bind Firebase to their favorite frameworks, these are <b>not official Firebase SDKs</b> and are not covered by Firebase support. For support using these libraries, file issues directly on GitHub. </p> <div id="framework-content" class="firebase-filterable-table"> <table> <thead> <tr> <th>Title</th> <th>Description</th> <th class="hidden">_platforms</th> <th>Docs</th> <th>Source</th> </tr> </thead> <tbody class="list"> <tr> <td>AngularFire</td> <td>Angular bindings for Firebase</td> <td class="hidden">Web</td> <td> <a class="link gc-analytics-event" data-category="exitLinks" data-action="linkClick" data-label="library-angularfire" href="https://web.archive.org/web/20210124035004/https://github.com/angular/angularfire2"> <span class="gmp-platform-icons gmp-icon-web material-icons" data-tooltip="Web supported" aria-hidden="true" translate="no">plat_web</span> </a> </td> <td><a href="https://web.archive.org/web/20210124035004/https://github.com/angular/angularfire2">GitHub</a></td> </tr> <tr> <td>EmberFire</td> <td>Ember bindings for Firebase</td> <td class="hidden">Web</td> <td> <a class="link gc-analytics-event" data-category="exitLinks" data-action="linkClick" data-label="library-emberfire" href="https://web.archive.org/web/20210124035004/https://firebaseopensource.com/projects/firebaseextended/emberfire"> <span class="gmp-platform-icons gmp-icon-web material-icons" data-tooltip="Web supported" aria-hidden="true" translate="no">plat_web</span> </a> </td> <td><a href="https://web.archive.org/web/20210124035004/https://github.com/firebase/emberfire">GitHub</a></td> </tr> <tr> <td>FlutterFire</td> <td>Flutter bindings for Firebase</td> <td class="hidden">Flutter</td> <td> <a class="link gc-analytics-event" data-category="exitLinks" data-action="linkClick" data-label="library-flutterfire" href="https://web.archive.org/web/20210124035004/https://github.com/FirebaseExtended/FlutterFire"> <span class="gmp-platform-icons gmp-icon-ios material-icons" data-tooltip="iOS supported" aria-hidden="true" translate="no">plat_ios</span> </a> <a class="link gc-analytics-event" data-category="exitLinks" data-action="linkClick" data-label="library-flutterfire" href="https://web.archive.org/web/20210124035004/https://github.com/FirebaseExtended/FlutterFire"> <span class="gmp-platform-icons gmp-icon-android material-icons" data-tooltip="Android supported" aria-hidden="true" translate="no">plat_android</span> </a> </td> <td><a href="https://web.archive.org/web/20210124035004/https://github.com/FirebaseExtended/FlutterFire">GitHub</a></td> </tr> <tr> <td>ReactFire</td> <td>React bindings for Firebase</td> <td class="hidden">Web</td> <td> <a class="link gc-analytics-event" data-category="exitLinks" data-action="linkClick" data-label="library-reactfire" href="https://web.archive.org/web/20210124035004/https://github.com/FirebaseExtended/reactfire"> <span class="gmp-platform-icons gmp-icon-web material-icons" data-tooltip="Web supported" aria-hidden="true" translate="no">plat_web</span> </a> </td> <td><a href="https://web.archive.org/web/20210124035004/https://github.com/FirebaseExtended/reactfire">GitHub</a></td> </tr> <tr> <td>React Native Firebase</td> <td>React Native bindings for Firebase</td> <td class="hidden">Android,iOS</td> <td> <a class="link gc-analytics-event" data-category="exitLinks" data-action="linkClick" data-label="library-rnfirebase" href="https://web.archive.org/web/20210124035004/https://invertase.io/oss/react-native-firebase/"> <span class="gmp-platform-icons gmp-icon-ios material-icons" data-tooltip="iOS supported" aria-hidden="true" translate="no">plat_ios</span> </a> <a class="link gc-analytics-event" data-category="exitLinks" data-action="linkClick" data-label="library-rnfirebase" href="https://web.archive.org/web/20210124035004/https://invertase.io/oss/react-native-firebase/"> <span class="gmp-platform-icons gmp-icon-android material-icons" data-tooltip="Android supported" aria-hidden="true" translate="no">plat_android</span> </a> </td> <td><a href="https://web.archive.org/web/20210124035004/https://github.com/invertase/react-native-firebase">GitHub</a></td> </tr> <tr> <td>RxFire</td> <td>RxJS bindings for Firebase</td> <td class="hidden">Web</td> <td> <a class="link gc-analytics-event" data-category="exitLinks" data-action="linkClick" data-label="library-rxfire" href="https://web.archive.org/web/20210124035004/https://firebaseopensource.com/projects/firebase/firebase-js-sdk/packages/rxfire/readme.md/"> <span class="gmp-platform-icons gmp-icon-web material-icons" data-tooltip="Web supported" aria-hidden="true" translate="no">plat_web</span> </a> </td> <td><a href="https://web.archive.org/web/20210124035004/https://github.com/firebase/firebase-js-sdk/tree/master/packages/rxfire">GitHub</a></td> </tr> <tr> <td>Vuefire</td> <td>Vue bindings for Firebase</td> <td class="hidden">Web</td> <td> <a class="link gc-analytics-event" data-category="exitLinks" data-action="linkClick" data-label="library-rnfirebase" href="https://web.archive.org/web/20210124035004/https://vuefire.vuejs.org/"> <span class="gmp-platform-icons gmp-icon-web material-icons" data-tooltip="Web supported" aria-hidden="true" translate="no">plat_web</span> </a> </td> <td><a href="https://web.archive.org/web/20210124035004/https://github.com/vuejs/vuefire">GitHub</a></td> </tr> </tbody> </table> </div> </devsite-filter> <devsite-filter select-el-container-id="filter1" sortable="0"> <h2 id="other-libraries-and-tools" data-text="Other Libraries and Tools">Other Libraries and Tools</h2> <p> Libraries to simplify common Firebase tasks and integrations </p> <div id="helpers-content" class="firebase-filterable-table"> <table> <thead> <tr> <th>Title</th> <th>Description</th> <th class="hidden">_platforms</th> <th>Docs</th> <th>Source</th> </tr> </thead> <tbody class="list"> <tr> <td>FirebaseUI</td> <td> An open-source library of UI components for various Firebase features </td> <td class="hidden">iOS, Android, Web</td> <td> <a class="link gc-analytics-event" data-category="exitLinks" data-action="linkClick" data-label="library-firebaseui-ios" href="https://web.archive.org/web/20210124035004/https://firebaseopensource.com/projects/firebase/firebaseui-ios"> <span class="gmp-platform-icons gmp-icon-ios material-icons" data-tooltip="iOS supported" aria-hidden="true" translate="no">plat_ios</span> </a> <a class="link gc-analytics-event" data-category="exitLinks" data-action="linkClick" data-label="library-firebaseui-android" href="https://web.archive.org/web/20210124035004/https://firebaseopensource.com/projects/firebase/firebaseui-android"> <span class="gmp-platform-icons gmp-icon-android material-icons" data-tooltip="Android supported" aria-hidden="true" translate="no">plat_android</span> </a> <a class="link gc-analytics-event" data-category="exitLinks" data-action="linkClick" data-label="library-firebaseui-web" href="https://web.archive.org/web/20210124035004/https://firebaseopensource.com/projects/firebase/firebaseui-web"> <span class="gmp-platform-icons gmp-icon-web material-icons" data-tooltip="Web supported" aria-hidden="true" translate="no">plat_web</span> </a> </td> <td>GitHub (<a href="https://web.archive.org/web/20210124035004/https://github.com/firebase/FirebaseUI-Android">Android</a>, <a href="https://web.archive.org/web/20210124035004/https://github.com/firebase/FirebaseUI-iOS">iOS</a>, <a href="https://web.archive.org/web/20210124035004/https://github.com/firebase/FirebaseUI-Web">Web</a>) </td> </tr> <tr> <td>firebase-dart</td> <td> Dart wrapper for the Firebase JavaScript SDK </td> <td class="hidden">Web</td> <td> <a class="link gc-analytics-event" data-category="exitLinks" data-action="linkClick" data-label="library-firebase-dart" href="https://web.archive.org/web/20210124035004/https://pub.dartlang.org/packages/firebase"> <span class="gmp-platform-icons gmp-icon-web material-icons" data-tooltip="Web supported" aria-hidden="true" translate="no">plat_web</span> </a> </td> <td><a href="https://web.archive.org/web/20210124035004/https://github.com/FirebaseExtended/firebase-dart">GitHub</a></td> </tr> <tr> <td>GeoFire</td> <td> An open-source library for Firebase Realtime Database that adds support for geospatial querying </td> <td class="hidden">iOS, Android, Web</td> <td> <a class="link gc-analytics-event" data-category="exitLinks" data-action="linkClick" data-label="library-geofire-objc" href="https://web.archive.org/web/20210124035004/https://firebaseopensource.com/projects/firebase/geofire-objc"> <span class="gmp-platform-icons gmp-icon-ios material-icons" data-tooltip="iOS supported" aria-hidden="true" translate="no">plat_ios</span> </a> <a class="link gc-analytics-event" data-category="exitLinks" data-action="linkClick" data-label="library-geofire-android" href="https://web.archive.org/web/20210124035004/https://firebaseopensource.com/projects/firebase/geofire-android"> <span class="gmp-platform-icons gmp-icon-android material-icons" data-tooltip="Android supported" aria-hidden="true" translate="no">plat_android</span> </a> <a class="link gc-analytics-event" data-category="exitLinks" data-action="linkClick" data-label="library-geofire-js" href="https://web.archive.org/web/20210124035004/https://firebaseopensource.com/projects/firebase/geofire-js"> <span class="gmp-platform-icons gmp-icon-web material-icons" data-tooltip="Web supported" aria-hidden="true" translate="no">plat_web</span> </a> </td> <td>GitHub (<a href="https://web.archive.org/web/20210124035004/https://github.com/firebase/geofire-android">Android</a>, <a href="https://web.archive.org/web/20210124035004/https://github.com/firebase/geofire-ios">iOS</a>, <a href="https://web.archive.org/web/20210124035004/https://github.com/firebase/geofire-js">Web</a>) </td> </tr> <tr> <td>FirePad</td> <td> An open source library to add a shared editor to a web app </td> <td class="hidden">Web</td> <td> <a class="link gc-analytics-event" data-category="exitLinks" data-action="linkClick" data-label="library-firepad" href="https://web.archive.org/web/20210124035004/https://github.com/firebase/firepad"> <span class="gmp-platform-icons gmp-icon-web material-icons" data-tooltip="Web supported" aria-hidden="true" translate="no">plat_web</span> </a> </td> <td><a href="https://web.archive.org/web/20210124035004/https://github.com/firebase/firepad">GitHub</a></td> </tr> <tr> <td>Firebase Import</td> <td> A utility which helps import large JSON files into Firebase Realtime Database </td> <td class="hidden">NodeJS</td> <td> <a class="link gc-analytics-event" data-category="exitLinks" data-action="linkClick" data-label="library-firebase-import" href="https://web.archive.org/web/20210124035004/https://github.com/FirebaseExtended/firebase-import"> <span class="gmp-platform-icons gmp-icon-node material-icons" data-tooltip="Node.js supported" aria-hidden="true" translate="no">plat_node</span> </a> </td> <td><a href="https://web.archive.org/web/20210124035004/https://github.com/FirebaseExtended/firebase-import">GitHub</a></td> </tr> </tbody> </table> </div> </devsite-filter> </div> </div> </article> </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/20210124035004/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/20210124035004/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/20210124035004/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/20210124035004/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/20210124035004/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/20210124035004/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/20210124035004/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/20210124035004/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/20210124035004/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/20210124035004/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/20210124035004/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/20210124035004/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/20210124035004/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/20210124035004/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/20210124035004/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/20210124035004/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/20210124035004/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/20210124035004im_/https://www.gstatic.com/devrel-devsite/prod/vbd4700e58d826f0eab371eadc20e0e343567df356800794a790eebf2ac059db2/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/20210124035004/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/20210124035004/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/20210124035004/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/20210124035004/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/20210124035004/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/20210124035004/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/20210124035004/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"> עברית' </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"}, "tags": ["GTM-N84485"]}</script> </devsite-analytics> <devsite-badger></devsite-badger> <firebase-gtm></firebase-gtm> <script nonce="xaX9yoEOrUu/sGvfdAz2Wa+rE60Z3+"> (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/20210124035004/https://www.gstatic.com/devrel-devsite/prod/vbd4700e58d826f0eab371eadc20e0e343567df356800794a790eebf2ac059db2/firebase/js/app_loader.js', '[4,"en",null,"/js/devsite_app_module.js","https://web.archive.org/web/20210124035004/https://www.gstatic.com/devrel-devsite/prod/vbd4700e58d826f0eab371eadc20e0e343567df356800794a790eebf2ac059db2","https://web.archive.org/web/20210124035004/https://www.gstatic.com/devrel-devsite/prod/vbd4700e58d826f0eab371eadc20e0e343567df356800794a790eebf2ac059db2/firebase","https://web.archive.org/web/20210124035004/https://firebase-dot-devsite-v2-prod.appspot.com",1,null,["/_pwa/firebase/manifest.json","/_static/images/video-placeholder.svg","https://web.archive.org/web/20210124035004/https://www.gstatic.com/devrel-devsite/prod/vbd4700e58d826f0eab371eadc20e0e343567df356800794a790eebf2ac059db2/firebase/images/favicon.png","https://web.archive.org/web/20210124035004/https://www.gstatic.com/devrel-devsite/prod/vbd4700e58d826f0eab371eadc20e0e343567df356800794a790eebf2ac059db2/firebase/images/lockup.png","https://web.archive.org/web/20210124035004/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,111,113,115,116,120,122]]') </script> <devsite-a11y-announce></devsite-a11y-announce> </body> </html><!-- FILE ARCHIVED ON 03:50:04 Jan 24, 2021 AND RETRIEVED FROM THE INTERNET ARCHIVE ON 16:17:35 Dec 11, 2024. 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.48 exclusion.robots: 0.024 exclusion.robots.policy: 0.015 esindex: 0.009 cdx.remote: 7.793 LoadShardBlock: 2234.701 (3) PetaboxLoader3.datanode: 86.871 (4) PetaboxLoader3.resolve: 3420.325 (2) load_resource: 3249.941 -->