CINXE.COM
Firebase Summit
<!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/summit","20210124150546","https://web.archive.org/","web","/_static/", "1611500746"); </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/20210124150546/https://firebase.google.com/_pwa/firebase/manifest.json" crossorigin="use-credentials"> <link rel="preconnect" href="//web.archive.org/web/20210124150546/https://www.gstatic.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20210124150546/https://fonts.gstatic.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20210124150546/https://fonts.googleapis.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20210124150546/https://apis.google.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20210124150546/https://www.google-analytics.com/" crossorigin> <link rel="stylesheet" href="//web.archive.org/web/20210124150546cs_/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/20210124150546cs_/https://www.gstatic.com/devrel-devsite/prod/vbd4700e58d826f0eab371eadc20e0e343567df356800794a790eebf2ac059db2/firebase/css/app.css"> <noscript> </noscript> <link rel="shortcut icon" href="https://web.archive.org/web/20210124150546im_/https://www.gstatic.com/devrel-devsite/prod/vbd4700e58d826f0eab371eadc20e0e343567df356800794a790eebf2ac059db2/firebase/images/favicon.png"> <link rel="apple-touch-icon" href="https://web.archive.org/web/20210124150546im_/https://www.gstatic.com/devrel-devsite/prod/vbd4700e58d826f0eab371eadc20e0e343567df356800794a790eebf2ac059db2/firebase/images/touchicon-180.png"><link rel="canonical" href="https://web.archive.org/web/20210124150546/https://firebase.google.com/summit"><link rel="search" type="application/opensearchdescription+xml" title="Firebase" href="https://web.archive.org/web/20210124150546/https://firebase.google.com/s/opensearch.xml"> <title>Firebase Summit</title> <meta property="og:title" content="Firebase Summit"> <meta name="description" content="Firebase Summit is returning as a virtual event on 27 October - 28 October 2020. Join us for a keynote, technical sessions, live Q&A, demos, and codelabs. "> <meta property="og:description" content="Firebase Summit is returning as a virtual event on 27 October - 28 October 2020. Join us for a keynote, technical sessions, live Q&A, demos, and codelabs. "> <meta property="og:url" content="https://web.archive.org/web/20210124150546/https://firebase.google.com/summit"> <meta property="og:image" content="https://web.archive.org/web/20210124150546im_/https://firebase.google.com/summit/images/summit-social-image.png"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="675"> <meta property="og:locale" content="en"> <meta name="twitter:card" content="summary_large_image"> </head> <body type="landing" theme="firebase-theme" class="fb-summit fb-summit-landing" 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/20210124150546/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/20210124150546im_/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 active> <a href="https://web.archive.org/web/20210124150546/https://firebase.google.com/summit" class="gc-analytics-event " track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="eventHome" aria-label="Event Home, selected" data-category="Site-Wide Custom Events" data-label="Tab: Event Home"> Event Home </a> </tab> <tab> <a href="https://web.archive.org/web/20210124150546/https://firebase.google.com/summit/learn" class="gc-analytics-event " track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="learn" data-category="Site-Wide Custom Events" data-label="Tab: Learn"> Learn </a> </tab> <tab> <a href="https://web.archive.org/web/20210124150546/https://firebase.google.com/summit/speakers" class="gc-analytics-event " track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="speakers" data-category="Site-Wide Custom Events" data-label="Tab: Speakers"> Speakers </a> </tab> <tab> <a href="https://web.archive.org/web/20210124150546/https://firebase.google.com/summit/community-guidelines" class="gc-analytics-event " track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="communityGuidelines" data-category="Site-Wide Custom Events" data-label="Tab: Community Guidelines"> Community Guidelines </a> </tab> <tab> <a href="https://web.archive.org/web/20210124150546/https://firebase.google.com/summit/faq" class="gc-analytics-event " track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="faq" data-category="Site-Wide Custom Events" data-label="Tab: FAQ"> FAQ </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 Summit" tenant-name="Firebase" role="combobox"> <form class="devsite-search-form" action="https://web.archive.org/web/20210124150546/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/20210124150546/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 devsite-header-no-lower-tabs "> <div class="devsite-header-background"> </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/20210124150546/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/20210124150546im_/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/20210124150546/https://firebase.google.com/summit" class="devsite-nav-title gc-analytics-event devsite-nav-active" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Event Home" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="eventHome"> <span class="devsite-nav-text" tooltip> Event Home </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210124150546/https://firebase.google.com/summit/learn" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Learn" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="learn"> <span class="devsite-nav-text" tooltip> Learn </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210124150546/https://firebase.google.com/summit/speakers" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Speakers" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="speakers"> <span class="devsite-nav-text" tooltip> Speakers </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210124150546/https://firebase.google.com/summit/community-guidelines" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Community Guidelines" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="communityGuidelines"> <span class="devsite-nav-text" tooltip> Community Guidelines </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210124150546/https://firebase.google.com/summit/faq" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: FAQ" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="faq"> <span class="devsite-nav-text" tooltip> FAQ </span> </a> </li> <li class="devsite-nav-item"> <a href="//web.archive.org/web/20210124150546/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> </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 /summit/styles/minified.css */ .fb-summit .detail-header .devsite-landing-row-inner{max-width:var(--content-width)}.fb-summit-detail .detail-header{padding:32px 0}.fb-summit-detail .detail-header h2{margin:0 0 12px;color:#fff}.fb-summit-detail .detail-header .devsite-landing-row-description{font-family:var(--primary-font);font-size:18px;line-height:22px;max-width:720px;color:#fff!important}@media only screen and (min-width:800px){.fb-summit-detail .detail-header{padding:84px 0}.fb-summit-detail .detail-header .devsite-landing-row-description{font-size:20px;line-height:24px}}.fb-summit-detail .devsite-main-content{background-image:url(/web/20210124150546im_/https://firebase.google.com/summit/images/detail-bg.svg);background-size:100%;background-position:top center}.fb-summit-detail .devsite-landing-row{background-color:transparent}.fb-summit{background-color:var(--dark-blue)}.fb-summit span.highlight{color:var(--text-highlight);font-weight:500}.fb-summit h2,.fb-summit h3,.fb-summit h4,.fb-summit p{color:var(--text-color)}.fb-summit h2{font-size:36px;line-height:42px}@media only screen and (min-width:800px){.fb-summit h2{font-size:42px;line-height:49px}}.fb-summit h3{font-size:22px;line-height:24px;font-weight:500}@media only screen and (min-width:800px){.fb-summit h3{font-size:24px;line-height:28px}}.fb-summit h4{font-size:18px;line-height:22px;font-weight:500}@media only screen and (min-width:800px){.fb-summit h4{font-size:20px;line-height:24px}}.fb-summit p{font-family:var(--primary-font);font-size:16px;line-height:21px}:root{--content-width:1280px;--text-color:#424242;--text-highlight:#ffca28;--white:#fff;--dark-blue:#2b3748;--light-grey:#eceff1;--focus-blue:#e8f7ff;--firebase-blue:#0277bd;--firebase-dark-blue:#1967d2;--firebase-yellow:#ffcb29;--firebase-pink:#ff8a65;--firebase-dark-pink:#ff805b;--firebase-orange:#f9a01b;--firebase-dark-orange:#f47c20;--primary-font:'Google Sans','Roboto',sans-serif}.fb-summit .card-grid .devsite-landing-row-header{padding-bottom:0!important;border-radius:10px 10px 0 0!important}.fb-summit .card-grid .devsite-landing-row-header h3{text-align:center;margin:0 0 24px}.fb-summit .card-grid .devsite-landing-row-group{padding-top:0;border-radius:0 0 10px 10px!important}.fb-summit .card-grid .devsite-landing-row-description{font-family:var(--primary-font);margin:0 auto;text-align:center;color:var(--text-color);max-width:660px}.fb-summit .card-grid.bleed-header.build-apps-fast .devsite-landing-row-header-text{background-color:var(--firebase-dark-orange)}.fb-summit .card-grid.bleed-header.gain-new-insights .devsite-landing-row-header-text{background-color:var(--firebase-blue)}.fb-summit .card-grid.bleed-header.scale-effortlessly .devsite-landing-row-header-text{background-color:var(--firebase-dark-pink)}.fb-summit .card-grid.bleed-header.live-sessions .devsite-landing-row-header-text{background-color:var(--firebase-yellow)}.fb-summit .card-grid.bleed-header.codelab-screencasts .devsite-landing-row-header-text{background-color:var(--firebase-orange)}.fb-summit .card-grid.bleed-header .devsite-landing-row-header{padding:0!important}.fb-summit .card-grid.bleed-header .devsite-landing-row-header h3{margin:0;color:var(--white)}.fb-summit .card-grid.bleed-header.live-sessions .devsite-landing-row-header h3{color:var(--text-color)}.fb-summit .card-grid.bleed-header .devsite-landing-row-header-text{padding:24px 0}.fb-summit .card-grid__card{border-radius:10px;border:1px solid var(--light-grey);padding:26px}.fb-summit .card-grid__video-card{overflow:hidden;border-radius:10px;border:1px solid var(--light-grey)}.fb-summit .card-grid__card .devsite-landing-row-item-description,.fb-summit .card-grid__video-card .devsite-landing-row-item-description{margin:0}.fb-summit .card-grid__video-card .devsite-landing-row-item-description{padding:24px}.fb-summit .card-grid .card-grid__card .devsite-landing-row-item-description-content{margin:0 0 12px}.fb-summit .card-grid__card h4,.fb-summit .card-grid__video-card h4{margin:0 0 20px}.fb-summit .card-grid__card h3,.fb-summit .card-grid__video-card h3{margin:0}.fb-summit .devsite-landing-row-item-buttons a{font-size:16px}.fb-summit .devsite-landing-row-item-custom-image-icon-wrapper{justify-content:flex-start;position:relative}.fb-summit .card-grid .devsite-landing-row-item-custom-image-icon{width:auto}.fb-summit .card-grid .devsite-landing-row-item-custom-image{padding:0!important}@media only screen and (min-width:600px){.fb-summit .devsite-landing-row-2-up .devsite-landing-row-group{grid-template-columns:1fr!important}}@media only screen and (min-width:800px){.fb-summit .devsite-landing-row-2-up .devsite-landing-row-group{grid-template-columns:repeat(2,1fr)!important}}@media only screen and (min-width:1000px){.fb-summit .card-grid .devsite-landing-row-group{grid-gap:60px}}:root{--card-section-mobile-pad:40px;--card-section-desktop-pad:80px}.fb-summit .card-section .devsite-landing-row-inner{max-width:var(--content-width)}.fb-summit .card-section .devsite-landing-row-group,.fb-summit .card-section .devsite-landing-row-header,.fb-summit .card-section .devsite-landing-row-html{padding:var(--card-section-mobile-pad);margin:0!important;background:#fff;border-radius:10px;color:var(--text-color);overflow:hidden}@media only screen and (min-width:1000px){.fb-summit .card-section .devsite-landing-row-group,.fb-summit .card-section .devsite-landing-row-header,.fb-summit .card-section .devsite-landing-row-html{padding:var(--card-section-desktop-pad)}}.fb-summit .card-section:last-of-type{padding-bottom:280px}.summit-dory{background-color:#fff;border-radius:0 0 10px 10px;border:1px solid var(--light-grey);overflow:hidden}.summit-dory devsite-extradory>.devsite-extra-dory-iframe{height:540px}:root{--desktop-h-pad:40px;--mobile-h-pad:14px;--animation-duration:.5s}@keyframes delayVisibility{99%{visibility:visible}100%{visibility:hidden}}.fb-summit .expandables-list .expandables-wrapper{background-color:#fff;border-radius:10px;border:1px solid var(--light-grey)}.fb-summit .expandables-list .expandable-container{position:relative}.fb-summit .expandables-list .expandable-container:not(:last-child):after{content:'';display:block;position:relative;height:1px;width:100%;left:0;bottom:0;background-color:var(--light-grey)}.fb-summit .expandables-list .exw-control{display:block}.fb-summit .expandable-container{background:0 0}.fb-summit .expandable-container .showalways{padding:21px 30px 21px 0;position:relative;margin:0}@media only screen and (min-width:800px){.fb-summit .expandable-container .showalways{display:flex}}.fb-summit .expandable-container .showalways h4,.fb-summit .expandables-list .expandable-group__header{margin:0}.fb-summit .expandable-container .showalways h4.title{max-width:580px}.fb-summit .expandable-container .showalways h4.timestamp{font-weight:400;margin:0 20px 6px 0;min-width:115px}.fb-summit .expandable-container .showalways .tag{display:flex;align-items:center;margin-top:6px;color:var(--text-color)}.fb-summit .expandable-container .showalways .tag .circle{width:12px;border-radius:12px;height:12px;display:inline-block;content:'';margin-right:12px}.fb-summit .expandable-container .showalways .tag .circle.live{background:var(--firebase-yellow)}.fb-summit .expandable-container .showalways .tag .circle.gain-new-insights{background:var(--firebase-blue)}.fb-summit .expandable-container .showalways .tag .circle.scale-effortlessly{background:var(--firebase-dark-pink)}.fb-summit .expandable-container .showalways .tag .circle.build-apps-fast{background:var(--firebase-dark-orange)}.fb-summit .expandable-container .showalways .tag span{font-family:var(--primary-font);font-size:14px;line-height:16px}.fb-summit .expandables-list .expandable-group__header{padding:26px var(--mobile-h-pad);border-bottom:1px solid var(--light-grey)}.fb-summit .expandables-list .expandable-group__header--1,.fb-summit .expandables-list .expandable-group__header--2{border-top:1px solid var(--light-grey)}.fb-summit .expandable-container{padding:0 var(--mobile-h-pad)}.fb-summit .expandable-container a.exw-control>.showalways:before{display:none}.fb-summit .exw-control[aria-expanded=false]+.expandable-content .speakers__speaker,.fb-summit .exw-control[aria-expanded=false]+.expandable-content a{animation:var(--animation-duration) delayVisibility;animation-fill-mode:forwards;visibility:visible}.fb-summit .exw-control[aria-expanded=true]+.expandable-content .speakers__speaker,.fb-summit .exw-control[aria-expanded=true]+.expandable-content a{visibility:visible}.fb-summit .exw-control:focus .title,.fb-summit .exw-control:hover .title{color:var(--firebase-blue)}.fb-summit .exw-control:focus .showalways:after{background-color:var(--focus-blue)}.fb-summit .expandable-container a.exw-control>.showalways:after{content:'';display:block;width:22px;height:22px;right:0;top:50%;position:absolute;background-image:url(/web/20210124150546im_/https://firebase.google.com/summit/images/arrow_forward.svg);background-repeat:no-repeat;background-position:center;background-size:cover;transform:translateY(-50%) rotate(90deg);transition:transform var(--animation-duration)}.fb-summit .expandable-container[expanded] a.exw-control>.showalways:after{transform:translateY(-50%) rotate(-90deg)}.fb-summit .expandable-content{font-family:var(--primary-font);padding:0;max-width:840px;max-height:785px;overflow:hidden;display:block!important;transition:max-height var(--animation-duration)}.fb-summit .expandable-container:not([expanded])>:not(.showalways):not(.expand-control):not(.exw-control){max-height:0}.fb-summit .speakers{margin:32px auto 24px;display:flex;flex-wrap:wrap}.fb-summit .speakers__speaker{cursor:pointer;display:flex;align-items:center;margin-right:40px;margin-bottom:12px;min-width:213px;color:var(--text-color)}.fb-summit .speakers__speaker:active,.fb-summit .speakers__speaker:focus,.fb-summit .speakers__speaker:hover{color:var(--firebase-blue);text-decoration:none}.fb-summit .speakers__speaker:active img,.fb-summit .speakers__speaker:focus img,.fb-summit .speakers__speaker:hover img{border:2px solid var(--firebase-blue);filter:none}.fb-summit .speakers__speaker:focus{outline:0;background-color:var(--focus-blue);border-radius:55px}.fb-summit .speakers__speaker img{width:55px;height:55px;border-radius:100%;margin-right:20px;border:2px solid transparent}.fb-summit .speakers__speaker span{padding-right:20px}@media only screen and (min-width:800px){.fb-summit .expandable-container .showalways{padding:26px 30px 26px 0}.fb-summit .expandables-list .expandable-group__header{padding:26px var(--desktop-h-pad)}.fb-summit .expandable-container{padding:0 var(--desktop-h-pad)}.fb-summit .expandable-content{padding:0}.fb-summit .expandable-content.includes-tag{margin-left:135px}}.fb-summit devsite-dialog{width:800px;padding:42px;position:relative}.fb-summit devsite-dialog .speaker-modal-image{background:0 0;border-radius:50%;overflow:hidden;width:200px;height:200px;margin:0 auto 24px}@media only screen and (min-width:800px){.fb-summit devsite-dialog .speaker-modal-image{margin:0 64px 0 0}.fb-summit devsite-dialog .devsite-dialog-contents{display:flex;align-items:center}}.fb-summit devsite-dialog .devsite-dialog-contents .speaker-modal-content{flex:1}.fb-summit devsite-dialog .devsite-dialog-close{position:absolute;top:30px;right:30px;width:30px;height:30px;border:0;padding:5px}.fb-summit devsite-dialog .speaker-name{margin:0 0 12px;text-align:left}.fb-summit devsite-dialog .speaker-title{font-weight:500;margin:0 0 24px}.community-guidelines .guidelines-grid{display:grid;margin:1em auto;grid-template-columns:1fr 1fr 1fr;grid-gap:1em}@media screen and (max-width:600px){.community-guidelines .guidelines-grid{display:block}}.fb-summit .faq-list .expandable-group__header{color:var(--firebase-blue)!important}.fb-summit .interest-form p{max-width:640px;margin:0 auto 24px}.fb-summit .interest-form iframe{height:2400px}@media only screen and (min-width:320px){.fb-summit .interest-form iframe{height:2350px}}@media only screen and (min-width:375px){.fb-summit .interest-form iframe{height:2200px}}@media only screen and (min-width:420px){.fb-summit .interest-form iframe{height:2000px}}@media only screen and (min-width:490px){.fb-summit .interest-form iframe{height:1900px}}@media only screen and (min-width:745px){.fb-summit .interest-form iframe{height:1800px}}.fb-summit__info h3,.fb-summit__info p{color:#fff}.fb-summit__info .devsite-landing-row-item-description{max-width:900px!important}.fb-summit__extradory{background-image:url(/web/20210124150546im_/https://firebase.google.com/summit/images/landing-hero-bg.svg);background-position:center;background-size:cover;background-repeat:no-repeat}.fb-summit .fb-summit__extradory .devsite-landing-row-inner{max-width:var(--content-width)}.fb-summit .fb-summit__resources .devsite-landing-row-item-description h3{margin:0 0 12px}.fb-summit-landing .devsite-landing-row{background-color:transparent}.fb-summit-landing .devsite-main-content{background-image:url(/web/20210124150546im_/https://firebase.google.com/summit/images/landing-bg.svg);background-size:100%;background-position:top center}.fb-summit__hero{height:0;padding-top:0;padding-bottom:240px;position:relative;background-color:var(--firebase-blue)!important}.fb-summit__hero-inner{background:url(/web/20210124150546im_/https://firebase.google.com/summit/images/landing-hero-bg.svg) center no-repeat;background-size:cover;height:100%;width:100%;max-width:1200px;position:absolute;top:0;left:50%;transform:translateX(-50%);display:flex;align-items:center;justify-content:center}.fb-summit__hero-content{background-color:#fff;height:40%;padding:20px 12px;display:flex;align-items:center;margin-bottom:10px}.fb-summit__hero-content img{width:25px}.fb-summit__hero-text{display:flex;align-items:flex-start;justify-content:center;flex-direction:column;margin-left:15px}.fb-summit__hero-content h1{color:var(--dark-blue);margin:0;font-weight:500;font-size:24px}.fb-summit__hero-content .fb-summit__hero-date{margin:0;color:var(--firebase-blue);text-align:center;font-size:12px;line-height:16px;font-weight:500}@media only screen and (min-width:600px){.fb-summit__hero{padding-bottom:400px}.fb-summit__hero-content img{width:auto}.fb-summit__hero-content h1{font-size:36px;margin-bottom:8px}.fb-summit__hero-content .fb-summit__hero-date{font-size:18px;line-height:21px}}@media only screen and (min-width:1400px){.fb-summit__hero-content{padding:40px 20px}.fb-summit__hero-text{margin-left:15px}.fb-summit__hero-content h1{font-size:40px}}.fb-summit__info .devsite-landing-row-item-buttons{margin-left:0}.fb-summit__info .button{border-radius:8px!important;font-size:20px!important;padding:20px 52px!important;height:auto!important;line-height:16px!important;letter-spacing:.21px!important}.fb-summit__info .button--primary{color:#fff;background-color:var(--firebase-blue)}.fb-summit__info .button--primary:focus,.fb-summit__info .button--primary:hover{background-color:var(--firebase-dark-blue)}.fb-summit__info .button-white{color:var(--firebase-blue)}.fb-summit__info .button-white:focus,.fb-summit__info .button-white:hover{background-color:rgba(255,255,255,.1)}.fb-summit .card-grid--demos .card-grid__card .devsite-landing-row-item-custom-image-icon{margin-top:-10px;margin-left:-10px;width:100px}.fb-summit .card-grid--codelabs .card-grid__card .devsite-landing-row-item-custom-image-icon{margin-bottom:24px}.fb-summit .card-grid--pathways .card-grid__card .devsite-landing-row-item-custom-image-icon{margin-bottom:20px;width:90px}.fb-summit-speakers .card-section .devsite-landing-row-group{padding:54px 30px}@media only screen and (min-width:800px){.fb-summit .speakers-grid .devsite-landing-row-group{padding:123px 134px 118px}}.fb-summit .speakers-grid .devsite-landing-row-item-image{background:0 0;border-radius:50%;overflow:hidden;width:180px;height:180px;margin:0 auto}.fb-summit .speakers-grid .devsite-landing-row-item-description{text-align:center}.fb-summit .speakers-grid .devsite-landing-row-item-description h3{margin:0 0 10px}.fb-summit .speakers-grid .devsite-landing-row-item-description p{margin:0 0 14px}.fb-summit .speakers-grid .devsite-landing-row-group{grid-gap:84px 32px} </style> <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/20210124150546/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=""> Home </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/20210124150546/https://firebase.google.com/summit" 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="Firebase Summit"> Firebase Summit </a> </li> </ul> </div> <devsite-toc class="devsite-nav" devsite-toc-embedded disabled> </devsite-toc> <div class="devsite-article-body clearfix devsite-no-page-title"> <section class="devsite-landing-row devsite-landing-row-1-up fb-summit__extradory" header-position="top"> <div class="devsite-landing-row-inner"> <div class="devsite-landing-row-html"> <devsite-iframe><iframe src="/web/20210124150546if_/https://firebase.google.com/summit/index_d622a477abad374f97d536017890c4c507cd8c48ea1130be6c733e424c8911d5.frame" class="framebox inherit-locale summit-video-live-chat" allowfullscreen is-upgraded></iframe></devsite-iframe> </div> </div> </section> <section class="devsite-landing-row devsite-landing-row-1-up devsite-landing-row-cta fb-summit__info" header-position="top"> <div class="devsite-landing-row-inner"> <div class="devsite-landing-row-group"> <div class="devsite-landing-row-item devsite-landing-row-item-no-media" description-position="bottom"> <div class="devsite-landing-row-item-description"> <div class="devsite-landing-row-item-body"> <h3 id="thanks-for-joining-us-check-out-all-the-videos-on-demand-for-the-latest-firebase-news-and-upcoming-events-be-sure-to-follow-us-on-a-hrefhttpstwittercomfirebase-target_blankspan-classhighlighttwitterspana-and-subscribe-to-the-a-hrefhttpswwwyoutubecomuserfirebase-target_blankspan-classhighlightfirebase-channelspana-on-youtube-brbr-to-help-us-make-future-virtual-events-even-better-please-fill-out-this-a-hrefsummitsurveyspan-classhighlightshort-surveyspana" data-text="Thanks for joining us! Check out all the videos on demand. For the latest Firebase news and upcoming events, be sure to follow us on Twitter and subscribe to the Firebase Channel on YouTube! To help us make future virtual events even better, please fill out this short survey. " class="hide-from-toc no-link" tabindex="0"> Thanks for joining us! Check out all the videos on demand. For the latest Firebase news and upcoming events, be sure to follow us on <a href="https://web.archive.org/web/20210124150546/https://twitter.com/Firebase" target="_blank"><span class="highlight">Twitter</span></a> and subscribe to the <a href="https://web.archive.org/web/20210124150546/https://www.youtube.com/user/Firebase" target="_blank"><span class="highlight">Firebase Channel</span></a> on YouTube! <br><br> To help us make future virtual events even better, please fill out this <a href="/web/20210124150546/https://firebase.google.com/summit/survey"><span class="highlight">short survey</span></a>. </h3> </div> </div> </div> </div> </div> </section> <section class="devsite-landing-row devsite-landing-row-1-up fb-summit__badges" header-position="top"> <div class="devsite-landing-row-inner"> <div class="devsite-landing-row-html"> <devsite-badge-awarder type="position" badge="http://google.dev/badges/events/firebase/firebase-summit-attendee-2020"></devsite-badge-awarder> </div> </div> </section> <section class="devsite-landing-row devsite-landing-row-3-up fb-summit__resources card-section" header-position="top"> <div class="devsite-landing-row-inner"> <div class="devsite-landing-row-group"> <div class="devsite-landing-row-item devsite-landing-row-item-no-media" description-position="bottom"> <div class="devsite-landing-row-item-description"> <div class="devsite-landing-row-item-body"> <h3 id="demos" data-text="Demos" class="hide-from-toc no-link" tabindex="0"> Demos </h3> <div class="devsite-landing-row-item-description-content"> We've built these interactive experiences to show how Firebase can help improve your app, give you opportunities to give feedback and just have fun. </div> <div class="devsite-landing-row-item-buttons"> <a href="https://web.archive.org/web/20210124150546/https://firebase.google.com/summit/learn#demos" class="button button-white ">See demos</a> </div> </div> </div> </div> <div class="devsite-landing-row-item devsite-landing-row-item-no-media" description-position="bottom"> <div class="devsite-landing-row-item-description"> <div class="devsite-landing-row-item-body"> <h3 id="codelabs" data-text="Codelabs" class="hide-from-toc no-link" tabindex="0"> Codelabs </h3> <div class="devsite-landing-row-item-description-content"> We have four new codelabs for you to get hands-on learning! You can also check out the accompanying walkthrough videos for additional assistance. </div> <div class="devsite-landing-row-item-buttons"> <a href="https://web.archive.org/web/20210124150546/https://firebase.google.com/summit/learn#codelabs" class="button button-white ">Try Codelabs</a> </div> </div> </div> </div> <div class="devsite-landing-row-item devsite-landing-row-item-no-media" description-position="bottom"> <div class="devsite-landing-row-item-description"> <div class="devsite-landing-row-item-body"> <h3 id="pathways" data-text="Pathways" class="hide-from-toc no-link" tabindex="0"> Pathways </h3> <div class="devsite-landing-row-item-description-content"> Earn a badge for each topic by completing the quiz at the end of the pathway </div> <div class="devsite-landing-row-item-buttons"> <a href="https://web.archive.org/web/20210124150546/https://firebase.google.com/summit/learn#pathways" class="button button-white ">Try Pathways</a> </div> </div> </div> </div> </div> </div> </section> <section class="devsite-landing-row devsite-landing-row-3-up card-section card-grid bleed-header live-sessions" header-position="top"> <div class="devsite-landing-row-inner"> <header class="devsite-landing-row-header"> <div class="devsite-landing-row-header-text"> <h2 id="h3-idlive-sessions-data-textlive-sessionslive-sessionsh3" data-text="Live sessions" tabindex="0"> <h3 id="live-sessions" data-text="Live sessions">Live sessions</h3> </h2> </div> </header> <div class="devsite-landing-row-group"> <div class="devsite-landing-row-item card-grid__video-card" description-position="bottom"> <div class="devsite-landing-row-item-media "> <devsite-youtube autohide="1" showinfo="0" video-id="rwrUezKCc34"></devsite-youtube> </div> <div class="devsite-landing-row-item-description"> <div class="devsite-landing-row-item-body"> <h3 id="h4-idzero-to-app-livecoding-a-cross-platform-app-with-firebase-and-flutter-data-textzero-to-app-livecoding-a-cross-platform-app-with-firebase-and-flutterzero-to-app-livecoding-a-cross-platform-app-with-firebase-and-flutterh4" data-text="Zero to app: Livecoding a cross platform app with Firebase and Flutter " class="hide-from-toc no-link" tabindex="0"> <h4 id="zero-to-app:-livecoding-a-cross-platform-app-with-firebase-and-flutter" data-text="Zero to app: Livecoding a cross platform app with Firebase and Flutter">Zero to app: Livecoding a cross platform app with Firebase and Flutter</h4> </h3> </div> </div> </div> <div class="devsite-landing-row-item card-grid__video-card" description-position="bottom"> <div class="devsite-landing-row-item-media "> <devsite-youtube autohide="1" showinfo="0" video-id="3foXmuOv46A"></devsite-youtube> </div> <div class="devsite-landing-row-item-description"> <div class="devsite-landing-row-item-body"> <h3 id="h4-idaskfirebase-live-data-textaskfirebase-liveaskfirebase-liveh4" data-text="#AskFirebase Live" class="hide-from-toc no-link" tabindex="0"> <h4 id="askfirebase-live" data-text="#AskFirebase Live">#AskFirebase Live</h4> </h3> </div> </div> </div> </div> </div> </section> <section class="devsite-landing-row devsite-landing-row-3-up card-section card-grid bleed-header scale-effortlessly" header-position="top"> <div class="devsite-landing-row-inner"> <header class="devsite-landing-row-header"> <div class="devsite-landing-row-header-text"> <h2 id="h3-idbuild-apps-fast-data-textbuild-apps-fastbuild-apps-fasth3" data-text="Build Apps Fast" tabindex="0"> <h3 id="build-apps-fast" data-text="Build Apps Fast">Build Apps Fast</h3> </h2> </div> </header> <div class="devsite-landing-row-group"> <div class="devsite-landing-row-item card-grid__video-card" description-position="bottom"> <div class="devsite-landing-row-item-media "> <devsite-youtube autohide="1" showinfo="0" video-id="8JVmWtJLqNU"></devsite-youtube> </div> <div class="devsite-landing-row-item-description"> <div class="devsite-landing-row-item-body"> <h3 id="h4-idfirebase-authentication-from-fully-managed-to-fully-customizable-data-textfirebase-authentication-from-fully-managed-to-fully-customizablefirebase-authentication-from-fully-managed-to-fully-customizableh4" data-text="Firebase Authentication: from fully managed to fully customizable " class="hide-from-toc no-link" tabindex="0"> <h4 id="firebase-authentication:-from-fully-managed-to-fully-customizable" data-text="Firebase Authentication: from fully managed to fully customizable">Firebase Authentication: from fully managed to fully customizable</h4> </h3> </div> </div> </div> <div class="devsite-landing-row-item card-grid__video-card" description-position="bottom"> <div class="devsite-landing-row-item-media "> <devsite-youtube autohide="1" showinfo="0" video-id="VgQwlMtxbAw"></devsite-youtube> </div> <div class="devsite-landing-row-item-description"> <div class="devsite-landing-row-item-body"> <h3 id="h4-idhow-to-set-up-ci-using-the-firebase-emulator-suite-data-texthow-to-set-up-ci-using-the-firebase-emulator-suitehow-to-set-up-ci-using-the-firebase-emulator-suiteh4" data-text="How to set up CI using the Firebase Emulator suite " class="hide-from-toc no-link" tabindex="0"> <h4 id="how-to-set-up-ci-using-the-firebase-emulator-suite" data-text="How to set up CI using the Firebase Emulator suite">How to set up CI using the Firebase Emulator suite</h4> </h3> </div> </div> </div> <div class="devsite-landing-row-item card-grid__video-card" description-position="bottom"> <div class="devsite-landing-row-item-media "> <devsite-youtube autohide="1" showinfo="0" video-id="P3jXxNBtueQ"></devsite-youtube> </div> <div class="devsite-landing-row-item-description"> <div class="devsite-landing-row-item-body"> <h3 id="h4-idshipping-production-web-apps-on-firebase-hosting-data-textshipping-production-web-apps-on-firebase-hostingshipping-production-web-apps-on-firebase-hostingh4" data-text="Shipping production web apps on Firebase Hosting " class="hide-from-toc no-link" tabindex="0"> <h4 id="shipping-production-web-apps-on-firebase-hosting" data-text="Shipping production web apps on Firebase Hosting">Shipping production web apps on Firebase Hosting</h4> </h3> </div> </div> </div> </div> </div> </section> <section class="devsite-landing-row devsite-landing-row-3-up card-section card-grid bleed-header gain-new-insights" header-position="top"> <div class="devsite-landing-row-inner"> <header class="devsite-landing-row-header"> <div class="devsite-landing-row-header-text"> <h2 id="h3-idgain-new-insights-data-textgain-new-insightsgain-new-insightsh3" data-text="Gain New Insights" tabindex="0"> <h3 id="gain-new-insights" data-text="Gain New Insights">Gain New Insights</h3> </h2> </div> </header> <div class="devsite-landing-row-group"> <div class="devsite-landing-row-item card-grid__video-card" description-position="bottom"> <div class="devsite-landing-row-item-media "> <devsite-youtube autohide="1" showinfo="0" video-id="9QFEGP1mr-Q"></devsite-youtube> </div> <div class="devsite-landing-row-item-description"> <div class="devsite-landing-row-item-body"> <h3 id="h4-idhow-to-monitor-your-latest-release-with-firebase-crashlytics-and-performance-monitoring-data-texthow-to-monitor-your-latest-release-with-firebase-crashlytics-and-performance-monitoringhow-to-monitor-your-latest-release-with-firebase-crashlytics-and-performance-monitoringh4" data-text="How to monitor your latest release with Firebase Crashlytics and Performance Monitoring " class="hide-from-toc no-link" tabindex="0"> <h4 id="how-to-monitor-your-latest-release-with-firebase-crashlytics-and-performance-monitoring" data-text="How to monitor your latest release with Firebase Crashlytics and Performance Monitoring">How to monitor your latest release with Firebase Crashlytics and Performance Monitoring</h4> </h3> </div> </div> </div> <div class="devsite-landing-row-item card-grid__video-card" description-position="bottom"> <div class="devsite-landing-row-item-media "> <devsite-youtube autohide="1" showinfo="0" video-id="ASugxDQPm3A"></devsite-youtube> </div> <div class="devsite-landing-row-item-description"> <div class="devsite-landing-row-item-body"> <h3 id="h4-idserverless-security-modeling-in-firebase-data-textserverless-security-modeling-in-firebaseserverless-security-modeling-in-firebaseh4" data-text="Serverless security modeling in Firebase " class="hide-from-toc no-link" tabindex="0"> <h4 id="serverless-security-modeling-in-firebase" data-text="Serverless security modeling in Firebase">Serverless security modeling in Firebase</h4> </h3> </div> </div> </div> <div class="devsite-landing-row-item card-grid__video-card" description-position="bottom"> <div class="devsite-landing-row-item-media "> <devsite-youtube autohide="1" showinfo="0" video-id="GzJ9oiCnjJw"></devsite-youtube> </div> <div class="devsite-landing-row-item-description"> <div class="devsite-landing-row-item-body"> <h3 id="h4-idadding-on-device-recommendations-to-your-app-using-tensorflow-and-firebase-data-textadding-on-device-recommendations-to-your-app-using-tensorflow-and-firebaseadding-on-device-recommendations-to-your-app-using-tensorflow-and-firebaseh4" data-text="Adding on-device recommendations to your app using TensorFlow and Firebase " class="hide-from-toc no-link" tabindex="0"> <h4 id="adding-on-device-recommendations-to-your-app-using-tensorflow-and-firebase" data-text="Adding on-device recommendations to your app using TensorFlow and Firebase">Adding on-device recommendations to your app using TensorFlow and Firebase</h4> </h3> </div> </div> </div> </div> </div> </section> <section class="devsite-landing-row devsite-landing-row-3-up card-section card-grid bleed-header build-apps-fast" header-position="top"> <div class="devsite-landing-row-inner"> <header class="devsite-landing-row-header"> <div class="devsite-landing-row-header-text"> <h2 id="h3-idscale-effortlessly-data-textscale-effortlesslyscale-effortlesslyh3" data-text="Scale Effortlessly" tabindex="0"> <h3 id="scale-effortlessly" data-text="Scale Effortlessly">Scale Effortlessly</h3> </h2> </div> </header> <div class="devsite-landing-row-group"> <div class="devsite-landing-row-item card-grid__video-card" description-position="bottom"> <div class="devsite-landing-row-item-media "> <devsite-youtube autohide="1" showinfo="0" video-id="5wZbHKr2mLc"></devsite-youtube> </div> <div class="devsite-landing-row-item-description"> <div class="devsite-landing-row-item-body"> <h3 id="h4-idoptimize-your-app-ad-revenue-with-firebase-data-textoptimize-your-app-ad-revenue-with-firebaseoptimize-your-app-ad-revenue-with-firebaseh4" data-text="Optimize your app ad revenue with Firebase " class="hide-from-toc no-link" tabindex="0"> <h4 id="optimize-your-app-ad-revenue-with-firebase" data-text="Optimize your app ad revenue with Firebase">Optimize your app ad revenue with Firebase</h4> </h3> </div> </div> </div> <div class="devsite-landing-row-item card-grid__video-card" description-position="bottom"> <div class="devsite-landing-row-item-media "> <devsite-youtube autohide="1" showinfo="0" video-id="-tPHRj64zTM"></devsite-youtube> </div> <div class="devsite-landing-row-item-description"> <div class="devsite-landing-row-item-body"> <h3 id="h4-idengage-your-users-with-firebase-messaging-data-textengage-your-users-with-firebase-messagingengage-your-users-with-firebase-messagingh4" data-text="Engage your users with Firebase Messaging " class="hide-from-toc no-link" tabindex="0"> <h4 id="engage-your-users-with-firebase-messaging" data-text="Engage your users with Firebase Messaging">Engage your users with Firebase Messaging</h4> </h3> </div> </div> </div> <div class="devsite-landing-row-item card-grid__video-card" description-position="bottom"> <div class="devsite-landing-row-item-media "> <devsite-youtube autohide="1" showinfo="0" video-id="EoLp0WoUkoA"></devsite-youtube> </div> <div class="devsite-landing-row-item-description"> <div class="devsite-landing-row-item-body"> <h3 id="h4-idhow-to-turn-on-billing-and-still-sleep-at-night-data-texthow-to-turn-on-billing-and-still-sleep-at-nighthow-to-turn-on-billing-and-still-sleep-at-nighth4" data-text="How to turn on billing and still sleep at night " class="hide-from-toc no-link" tabindex="0"> <h4 id="how-to-turn-on-billing-and-still-sleep-at-night" data-text="How to turn on billing and still sleep at night">How to turn on billing and still sleep at night</h4> </h3> </div> </div> </div> <div class="devsite-landing-row-item card-grid__video-card" description-position="bottom"> <div class="devsite-landing-row-item-media "> <devsite-youtube autohide="1" showinfo="0" video-id="1fjyW2PHnJw"></devsite-youtube> </div> <div class="devsite-landing-row-item-description"> <div class="devsite-landing-row-item-body"> <h3 id="h4-iditerate-your-way-to-a-delightful-app-experience-using-firebase-remote-config-and-firebase-ab-testing-data-textiterate-your-way-to-a-delightful-app-experience-using-firebase-remote-config-and-firebase-ab-testingiterate-your-way-to-a-delightful-app-experience-using-firebase-remote-config-and-firebase-ab-testingh4" data-text="Iterate your way to a delightful app experience using Firebase Remote Config and Firebase A/B Testing " class="hide-from-toc no-link" tabindex="0"> <h4 id="iterate-your-way-to-a-delightful-app-experience-using-firebase-remote-config-and-firebase-ab-testing" data-text="Iterate your way to a delightful app experience using Firebase Remote Config and Firebase A/B Testing">Iterate your way to a delightful app experience using Firebase Remote Config and Firebase A/B Testing</h4> </h3> </div> </div> </div> </div> </div> </section> <section class="devsite-landing-row devsite-landing-row-3-up card-section card-grid bleed-header codelab-screencasts" header-position="top"> <div class="devsite-landing-row-inner"> <header class="devsite-landing-row-header"> <div class="devsite-landing-row-header-text"> <h2 id="h3-idcodelab-screencasts-data-textcodelab-screencastscodelab-screencastsh3" data-text="Codelab Screencasts" tabindex="0"> <h3 id="codelab-screencasts" data-text="Codelab Screencasts">Codelab Screencasts</h3> </h2> </div> </header> <div class="devsite-landing-row-group"> <div class="devsite-landing-row-item card-grid__video-card" description-position="bottom"> <div class="devsite-landing-row-item-media "> <devsite-youtube autohide="1" showinfo="0" video-id="SnF-6S0bGU4"></devsite-youtube> </div> <div class="devsite-landing-row-item-description"> <div class="devsite-landing-row-item-body"> <h3 id="h4-idbuilding-a-web-application-with-angular-and-firebase-data-textbuilding-a-web-application-with-angular-and-firebasebuilding-a-web-application-with-angular-and-firebaseh4" data-text="Building a web application with Angular and Firebase " class="hide-from-toc no-link" tabindex="0"> <h4 id="building-a-web-application-with-angular-and-firebase" data-text="Building a web application with Angular and Firebase">Building a web application with Angular and Firebase</h4> </h3> </div> </div> </div> <div class="devsite-landing-row-item card-grid__video-card" description-position="bottom"> <div class="devsite-landing-row-item-media "> <devsite-youtube autohide="1" showinfo="0" video-id="9CqnmcsUdiI"></devsite-youtube> </div> <div class="devsite-landing-row-item-description"> <div class="devsite-landing-row-item-body"> <h3 id="h4-idget-started-with-firebase-in-c-data-textget-started-with-firebase-in-cget-started-with-firebase-in-ch4" data-text="Get started with Firebase in C++ " class="hide-from-toc no-link" tabindex="0"> <h4 id="get-started-with-firebase-in-c++" data-text="Get started with Firebase in C++">Get started with Firebase in C++</h4> </h3> </div> </div> </div> <div class="devsite-landing-row-item card-grid__video-card" description-position="bottom"> <div class="devsite-landing-row-item-media "> <devsite-youtube autohide="1" showinfo="0" video-id="yAFQVjxNWE8"></devsite-youtube> </div> <div class="devsite-landing-row-item-description"> <div class="devsite-landing-row-item-body"> <h3 id="h4-idlocal-development-with-the-firebase-emulator-suite-data-textlocal-development-with-the-firebase-emulator-suitelocal-development-with-the-firebase-emulator-suiteh4" data-text="Local development with the Firebase Emulator Suite " class="hide-from-toc no-link" tabindex="0"> <h4 id="local-development-with-the-firebase-emulator-suite" data-text="Local development with the Firebase Emulator Suite">Local development with the Firebase Emulator Suite</h4> </h3> </div> </div> </div> </div> </div> </section> </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">Connect</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="https://web.archive.org/web/20210124150546/https://www.facebook.com/Firebase/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)"> Facebook </a> </li> <li class="devsite-footer-linkbox-item"> <a href="https://web.archive.org/web/20210124150546/https://twitter.com/Firebase" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)"> Twitter </a> </li> <li class="devsite-footer-linkbox-item"> <a href="https://web.archive.org/web/20210124150546/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 3)"> YouTube </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/20210124150546/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/20210124150546/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/20210124150546/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/20210124150546/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/20210124150546/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/20210124150546/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/20210124150546/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/20210124150546/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/20210124150546/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/20210124150546/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/20210124150546/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/20210124150546/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/20210124150546im_/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/20210124150546/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/20210124150546/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/20210124150546/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/20210124150546/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/20210124150546/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/20210124150546/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/20210124150546/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": "landing", "projectName": "Firebase Summit", "scriptsafe": null, "signedIn": "False", "tenant": "firebase"}, "tags": ["GTM-N84485"]}</script> </devsite-analytics> <devsite-badger></devsite-badger> <firebase-gtm></firebase-gtm> <script nonce="ocJMmyT2irxAKrliUlvY6PctmS1H2W"> (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/20210124150546/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/20210124150546/https://www.gstatic.com/devrel-devsite/prod/vbd4700e58d826f0eab371eadc20e0e343567df356800794a790eebf2ac059db2","https://web.archive.org/web/20210124150546/https://www.gstatic.com/devrel-devsite/prod/vbd4700e58d826f0eab371eadc20e0e343567df356800794a790eebf2ac059db2/firebase","https://web.archive.org/web/20210124150546/https://firebase-dot-devsite-v2-prod.appspot.com",1,null,["/_pwa/firebase/manifest.json","/_static/images/video-placeholder.svg","https://web.archive.org/web/20210124150546/https://www.gstatic.com/devrel-devsite/prod/vbd4700e58d826f0eab371eadc20e0e343567df356800794a790eebf2ac059db2/firebase/images/favicon.png","https://web.archive.org/web/20210124150546/https://www.gstatic.com/devrel-devsite/prod/vbd4700e58d826f0eab371eadc20e0e343567df356800794a790eebf2ac059db2/firebase/images/lockup.png","https://web.archive.org/web/20210124150546/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,120,122]]') </script> <devsite-a11y-announce></devsite-a11y-announce> </body> </html><!-- FILE ARCHIVED ON 15:05:46 Jan 24, 2021 AND RETRIEVED FROM THE INTERNET ARCHIVE ON 07:48:50 Nov 25, 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.723 exclusion.robots: 0.037 exclusion.robots.policy: 0.024 esindex: 0.017 cdx.remote: 16.852 LoadShardBlock: 196.816 (3) PetaboxLoader3.datanode: 86.458 (4) PetaboxLoader3.resolve: 86.468 (2) load_resource: 84.636 -->