CINXE.COM
Firebase
<!doctype html> <html lang="en" dir="ltr"> <head> <meta name="google-signin-client-id" content="721724668570-nbkv1cfusk7kk4eni4pjvepaus73b13t.apps.googleusercontent.com"> <meta name="google-signin-scope" content="profile email https://www.googleapis.com/auth/developerprofiles https://www.googleapis.com/auth/developerprofiles.award"> <meta property="og:site_name" content="Firebase"> <meta property="og:type" content="website"><meta name="theme-color" content="#a8c7fa"><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="/_pwa/firebase/manifest.json" crossorigin="use-credentials"> <link rel="preconnect" href="//www.gstatic.com" crossorigin> <link rel="preconnect" href="//fonts.gstatic.com" crossorigin> <link rel="preconnect" href="//fonts.googleapis.com" crossorigin> <link rel="preconnect" href="//apis.google.com" crossorigin> <link rel="preconnect" href="//www.google-analytics.com" crossorigin><link rel="stylesheet" href="//fonts.googleapis.com/css?family=Google+Sans:400,500|Roboto:400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700&display=swap"> <link rel="stylesheet" href="//fonts.googleapis.com/css2?family=Material+Icons&family=Material+Symbols+Outlined&display=block"><link rel="stylesheet" href="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/firebase/css/app.css"> <link rel="stylesheet" href="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/firebase/css/dark-theme.css" disabled> <link rel="shortcut icon" href="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/firebase/images/favicon.png"> <link rel="apple-touch-icon" href="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/firebase/images/touchicon-180.png"><link rel="canonical" href="https://firebase.google.com/products/hosting"><link rel="search" type="application/opensearchdescription+xml" title="Firebase" href="https://firebase.google.com/s/opensearch.xml"> <link rel="alternate" hreflang="en" href="https://firebase.google.com/products/hosting" /><link rel="alternate" hreflang="x-default" href="https://firebase.google.com/products/hosting" /><link rel="alternate" hreflang="ar" href="https://firebase.google.com/products/hosting?hl=ar" /><link rel="alternate" hreflang="bn" href="https://firebase.google.com/products/hosting?hl=bn" /><link rel="alternate" hreflang="zh-Hans" href="https://firebase.google.com/products/hosting?hl=zh-cn" /><link rel="alternate" hreflang="zh-Hant" href="https://firebase.google.com/products/hosting?hl=zh-tw" /><link rel="alternate" hreflang="fa" href="https://firebase.google.com/products/hosting?hl=fa" /><link rel="alternate" hreflang="fr" href="https://firebase.google.com/products/hosting?hl=fr" /><link rel="alternate" hreflang="de" href="https://firebase.google.com/products/hosting?hl=de" /><link rel="alternate" hreflang="he" href="https://firebase.google.com/products/hosting?hl=he" /><link rel="alternate" hreflang="hi" href="https://firebase.google.com/products/hosting?hl=hi" /><link rel="alternate" hreflang="id" href="https://firebase.google.com/products/hosting?hl=id" /><link rel="alternate" hreflang="it" href="https://firebase.google.com/products/hosting?hl=it" /><link rel="alternate" hreflang="ja" href="https://firebase.google.com/products/hosting?hl=ja" /><link rel="alternate" hreflang="ko" href="https://firebase.google.com/products/hosting?hl=ko" /><link rel="alternate" hreflang="pl" href="https://firebase.google.com/products/hosting?hl=pl" /><link rel="alternate" hreflang="pt-BR" href="https://firebase.google.com/products/hosting?hl=pt-br" /><link rel="alternate" hreflang="pt" href="https://firebase.google.com/products/hosting?hl=pt" /><link rel="alternate" hreflang="ru" href="https://firebase.google.com/products/hosting?hl=ru" /><link rel="alternate" hreflang="es" href="https://firebase.google.com/products/hosting?hl=es" /><link rel="alternate" hreflang="es-419" href="https://firebase.google.com/products/hosting?hl=es-419" /><link rel="alternate" hreflang="th" href="https://firebase.google.com/products/hosting?hl=th" /><link rel="alternate" hreflang="tr" href="https://firebase.google.com/products/hosting?hl=tr" /><link rel="alternate" hreflang="vi" href="https://firebase.google.com/products/hosting?hl=vi" /><title>Firebase</title> <meta property="og:title" content="Firebase"><meta property="og:url" content="https://firebase.google.com/products/hosting"><meta property="og:locale" content="en"><script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Article", "headline": "" } </script> <link rel="stylesheet" href="/extras.css"></head> <body class="" template="landing" theme="firebase-icy-theme" type="article" appearance layout="full" concierge='hide' pending> <devsite-progress type="indeterminate" id="app-progress"></devsite-progress> <section class="devsite-wrapper"> <devsite-cookie-notification-bar></devsite-cookie-notification-bar><devsite-header role="banner" keep-tabs-visible> <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="/" 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"> <picture> <source srcset="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/firebase/images/lockup.svg" media="(prefers-color-scheme: dark)" class="devsite-dark-theme" alt="Firebase"> <img src="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/firebase/images/lockup.svg" class="devsite-site-logo" alt="Firebase"> </picture> </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 class="devsite-dropdown "> <a href="https://firebase.google.com/products-build" track-metadata-eventdetail="https://firebase.google.com/products-build" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - build" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Build" track-name="build" > Build </a> <a href="#" role="button" aria-haspopup="true" aria-expanded="false" aria-label="Dropdown menu for Build" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products-build" track-metadata-position="nav - build" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Build" track-name="build" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></a> <div class="devsite-tabs-dropdown" aria-label="submenu" hidden> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column firebase-dropdown firebase-dropdown--primary firebase-build"> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Build</li> <li class="devsite-nav-description">Get to market quickly and securely with products that can scale globally </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products-build" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products-build" track-metadata-position="nav - build" track-metadata-module="tertiary nav" track-metadata-module_headline="build" tooltip > <div class="devsite-nav-item-title"> Go to Build </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column firebase-dropdown firebase-dropdown--secondary firebase-build"> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Build Products</li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/app-check" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/app-check" track-metadata-position="nav - build" track-metadata-module="tertiary nav" track-metadata-module_headline="build products" tooltip > <div class="devsite-nav-item-title"> App Check </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/app-hosting" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/app-hosting" track-metadata-position="nav - build" track-metadata-module="tertiary nav" track-metadata-module_headline="build products" tooltip > <div class="devsite-nav-item-title"> App Hosting </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/auth" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/auth" track-metadata-position="nav - build" track-metadata-module="tertiary nav" track-metadata-module_headline="build products" tooltip > <div class="devsite-nav-item-title"> Authentication </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/functions" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/functions" track-metadata-position="nav - build" track-metadata-module="tertiary nav" track-metadata-module_headline="build products" tooltip > <div class="devsite-nav-item-title"> Cloud Functions </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/storage" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/storage" track-metadata-position="nav - build" track-metadata-module="tertiary nav" track-metadata-module_headline="build products" tooltip > <div class="devsite-nav-item-title"> Cloud Storage </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/data-connect" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/data-connect" track-metadata-position="nav - build" track-metadata-module="tertiary nav" track-metadata-module_headline="build products" tooltip > <div class="devsite-nav-item-title"> Data Connect </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/extensions" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/extensions" track-metadata-position="nav - build" track-metadata-module="tertiary nav" track-metadata-module_headline="build products" tooltip > <div class="devsite-nav-item-title"> Extensions </div> </a> </li> </ul> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/ml" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/ml" track-metadata-position="nav - build" track-metadata-module="tertiary nav" track-metadata-module_headline="build products" tooltip > <div class="devsite-nav-item-title"> Firebase ML </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/firestore" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/firestore" track-metadata-position="nav - build" track-metadata-module="tertiary nav" track-metadata-module_headline="build products" tooltip > <div class="devsite-nav-item-title"> Firestore </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/genkit" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/genkit" track-metadata-position="nav - build" track-metadata-module="tertiary nav" track-metadata-module_headline="build products" tooltip > <div class="devsite-nav-item-title"> Genkit </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/hosting" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/hosting" track-metadata-position="nav - build" track-metadata-module="tertiary nav" track-metadata-module_headline="build products" tooltip > <div class="devsite-nav-item-title"> Hosting </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/realtime-database" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/realtime-database" track-metadata-position="nav - build" track-metadata-module="tertiary nav" track-metadata-module_headline="build products" tooltip > <div class="devsite-nav-item-title"> Realtime Database </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/vertex-ai-in-firebase" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/vertex-ai-in-firebase" track-metadata-position="nav - build" track-metadata-module="tertiary nav" track-metadata-module_headline="build products" tooltip > <div class="devsite-nav-item-title"> Vertex AI in Firebase </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/generative-ai" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/generative-ai" track-metadata-position="nav - build" track-metadata-module="tertiary nav" track-metadata-module_headline="build products" tooltip > <div class="devsite-nav-item-title"> Generative AI </div> </a> </li> </ul> </div> </div> </div> </tab> <tab class="devsite-dropdown "> <a href="https://firebase.google.com/products-run" track-metadata-eventdetail="https://firebase.google.com/products-run" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - run" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Run" track-name="run" > Run </a> <a href="#" role="button" aria-haspopup="true" aria-expanded="false" aria-label="Dropdown menu for Run" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products-run" track-metadata-position="nav - run" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Run" track-name="run" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></a> <div class="devsite-tabs-dropdown" aria-label="submenu" hidden> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column firebase-dropdown firebase-dropdown--primary firebase-run"> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Run</li> <li class="devsite-nav-description">Run your app with confidence and deliver the best experience for your users </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products-run" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products-run" track-metadata-position="nav - run" track-metadata-module="tertiary nav" track-metadata-module_headline="run" tooltip > <div class="devsite-nav-item-title"> Go to Run </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column firebase-dropdown firebase-dropdown--secondary"> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Run Products</li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/ab-testing" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/ab-testing" track-metadata-position="nav - run" track-metadata-module="tertiary nav" track-metadata-module_headline="run products" tooltip > <div class="devsite-nav-item-title"> A/B Testing </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/app-distribution" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/app-distribution" track-metadata-position="nav - run" track-metadata-module="tertiary nav" track-metadata-module_headline="run products" tooltip > <div class="devsite-nav-item-title"> App Distribution </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/cloud-messaging" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/cloud-messaging" track-metadata-position="nav - run" track-metadata-module="tertiary nav" track-metadata-module_headline="run products" tooltip > <div class="devsite-nav-item-title"> Cloud Messaging </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/crashlytics" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/crashlytics" track-metadata-position="nav - run" track-metadata-module="tertiary nav" track-metadata-module_headline="run products" tooltip > <div class="devsite-nav-item-title"> Crashlytics </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/analytics" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/analytics" track-metadata-position="nav - run" track-metadata-module="tertiary nav" track-metadata-module_headline="run products" tooltip > <div class="devsite-nav-item-title"> Google Analytics </div> </a> </li> </ul> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/in-app-messaging" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/in-app-messaging" track-metadata-position="nav - run" track-metadata-module="tertiary nav" track-metadata-module_headline="run products" tooltip > <div class="devsite-nav-item-title"> In-App Messaging </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/performance" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/performance" track-metadata-position="nav - run" track-metadata-module="tertiary nav" track-metadata-module_headline="run products" tooltip > <div class="devsite-nav-item-title"> Performance Monitoring </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/remote-config" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/remote-config" track-metadata-position="nav - run" track-metadata-module="tertiary nav" track-metadata-module_headline="run products" tooltip > <div class="devsite-nav-item-title"> Remote Config </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/test-lab" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/test-lab" track-metadata-position="nav - run" track-metadata-module="tertiary nav" track-metadata-module_headline="run products" tooltip > <div class="devsite-nav-item-title"> Test Lab </div> </a> </li> </ul> </div> </div> </div> </tab> <tab > <a href="https://firebase.google.com/pricing" track-metadata-eventdetail="https://firebase.google.com/pricing" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - pricing" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Pricing" track-name="pricing" > Pricing </a> </tab> <tab > <a href="https://firebase.google.com/docs/hosting" track-metadata-eventdetail="https://firebase.google.com/docs/hosting" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - docs" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Docs" track-name="docs" > Docs </a> </tab> <tab > <a href="https://firebase.blog/" track-metadata-eventdetail="https://firebase.blog/" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - blog" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Blog" track-name="blog" > Blog </a> </tab> <tab > <a href="https://firebase.google.com/support" track-metadata-eventdetail="https://firebase.google.com/support" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - support" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Support" track-name="support" > Support </a> </tab> </nav> </devsite-tabs> </div> <devsite-search enable-signin enable-search enable-suggestions enable-query-completion project-name="Firebase" tenant-name="Firebase" > <form class="devsite-search-form" action="https://firebase.google.com/s/results" method="GET"> <div class="devsite-search-container"> <button type="button" search-open class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Open search"></button> <div class="devsite-searchbox"> <input aria-activedescendant="" aria-autocomplete="list" aria-label="Search" aria-expanded="false" aria-haspopup="listbox" autocomplete="off" class="devsite-search-field devsite-search-query" name="q" placeholder="Search" role="combobox" type="text" value="" > <div class="devsite-search-image material-icons" aria-hidden="true"> </div> <div class="devsite-search-shortcut-icon-container" aria-hidden="true"> <kbd class="devsite-search-shortcut-icon">/</kbd> </div> </div> </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-appearance-selector></devsite-appearance-selector> <devsite-language-selector> <ul role="presentation"> <li role="presentation"> <a role="menuitem" lang="en" >English</a> </li> <li role="presentation"> <a role="menuitem" lang="de" >Deutsch</a> </li> <li role="presentation"> <a role="menuitem" lang="es" >Español</a> </li> <li role="presentation"> <a role="menuitem" lang="es_419" >Español – América Latina</a> </li> <li role="presentation"> <a role="menuitem" lang="fr" >Français</a> </li> <li role="presentation"> <a role="menuitem" lang="id" >Indonesia</a> </li> <li role="presentation"> <a role="menuitem" lang="it" >Italiano</a> </li> <li role="presentation"> <a role="menuitem" lang="pl" >Polski</a> </li> <li role="presentation"> <a role="menuitem" lang="pt" >Português</a> </li> <li role="presentation"> <a role="menuitem" lang="pt_br" >Português – Brasil</a> </li> <li role="presentation"> <a role="menuitem" lang="vi" >Tiếng Việt</a> </li> <li role="presentation"> <a role="menuitem" lang="tr" >Türkçe</a> </li> <li role="presentation"> <a role="menuitem" lang="ru" >Русский</a> </li> <li role="presentation"> <a role="menuitem" lang="he" >עברית</a> </li> <li role="presentation"> <a role="menuitem" lang="ar" >العربيّة</a> </li> <li role="presentation"> <a role="menuitem" lang="fa" >فارسی</a> </li> <li role="presentation"> <a role="menuitem" lang="hi" >हिंदी</a> </li> <li role="presentation"> <a role="menuitem" lang="bn" >বাংলা</a> </li> <li role="presentation"> <a role="menuitem" lang="th" >ภาษาไทย</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_cn" >中文 – 简体</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_tw" >中文 – 繁體</a> </li> <li role="presentation"> <a role="menuitem" lang="ja" >日本語</a> </li> <li role="presentation"> <a role="menuitem" lang="ko" >한국어</a> </li> </ul> </devsite-language-selector> <a class="devsite-header-link devsite-top-button button gc-analytics-event" href="//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"> <span class="button devsite-top-button" aria-hidden="true" visually-hidden>Sign in</span> </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> <div class="devsite-book-nav-filter" hidden> <span class="filter-list-icon material-icons" aria-hidden="true"></span> <input type="text" placeholder="Filter" aria-label="Type to filter" role="searchbox"> <span class="filter-clear-button hidden" data-title="Clear filter" aria-label="Clear filter" role="button" tabindex="0"></span> </div> <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="/" 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"> <picture> <source srcset="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/firebase/images/lockup.svg" media="(prefers-color-scheme: dark)" class="devsite-dark-theme" alt="Firebase"> <img src="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/firebase/images/lockup.svg" class="devsite-site-logo" alt="Firebase"> </picture> </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="/products-build" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Build" track-name="build" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Build" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Build </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu "> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: Build" track-name="build" > <span class="devsite-nav-text" tooltip menu="Build"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Build"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/products-run" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Run" track-name="run" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Run" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Run </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu "> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: Run" track-name="run" > <span class="devsite-nav-text" tooltip menu="Run"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Run"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/pricing" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Pricing" track-name="pricing" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Pricing" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Pricing </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/hosting" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Docs" track-name="docs" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Docs" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Docs </span> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.blog/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Blog" track-name="blog" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Blog" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Blog </span> </a> </li> <li class="devsite-nav-item"> <a href="/support" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Support" track-name="support" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Support" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Support </span> </a> </li> <li class="devsite-nav-item"> <a href="//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"> <span class="devsite-nav-text" tooltip > Go to console </span> </a> </li> </ul> </div> <div class="devsite-mobile-nav-bottom"> <ul class="devsite-nav-list" menu="Build" aria-label="Side menu" hidden> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Build </span> </span> </li> <li class="devsite-nav-item"> <a href="/products-build" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Go to Build" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Go to Build </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Build Products </span> </span> </li> <li class="devsite-nav-item"> <a href="/products/app-check" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: App Check" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > App Check </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/app-hosting" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: App Hosting" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > App Hosting </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/auth" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Authentication" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Authentication </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/functions" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Cloud Functions" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Cloud Functions </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/storage" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Cloud Storage" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Cloud Storage </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/data-connect" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Data Connect" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Data Connect </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/extensions" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Extensions" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Extensions </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/ml" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Firebase ML" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Firebase ML </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/firestore" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Firestore" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Firestore </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/genkit" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Genkit" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Genkit </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/hosting" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Hosting" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Hosting </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/realtime-database" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Realtime Database" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Realtime Database </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/vertex-ai-in-firebase" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Vertex AI in Firebase" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Vertex AI in Firebase </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/generative-ai" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Generative AI" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Generative AI </span> </a> </li> </ul> <ul class="devsite-nav-list" menu="Run" aria-label="Side menu" hidden> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Run </span> </span> </li> <li class="devsite-nav-item"> <a href="/products-run" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Go to Run" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Go to Run </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Run Products </span> </span> </li> <li class="devsite-nav-item"> <a href="/products/ab-testing" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: A/B Testing" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > A/B Testing </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/app-distribution" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: App Distribution" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > App Distribution </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/cloud-messaging" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Cloud Messaging" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Cloud Messaging </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/crashlytics" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Crashlytics" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Crashlytics </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/analytics" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Analytics" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Analytics </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/in-app-messaging" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: In-App Messaging" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > In-App Messaging </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/performance" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Performance Monitoring" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Performance Monitoring </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/remote-config" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Remote Config" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Remote Config </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/test-lab" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Test Lab" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Test Lab </span> </a> </li> </ul> </div> </div> </nav> </devsite-book-nav> <section id="gc-wrapper"> <main role="main" class="devsite-main-content" > <devsite-content> <article class="devsite-article"><style> /* Styles inlined from /styles/hosting.css */ /* ----------------- * * Default Variables * * ----------------- */ .firebase-hosting-button { --hosting-button-font: 500 20px/56px 'Google Sans'; } .firebase-hosting-hero-row, .firebase-hosting-coverage-row, .firebase-hosting-stats-row, .firebase-hosting-cta-row { --hosting-blue: #1a73e8; } .firebase-hosting-hero-row, .firebase-hosting-steps-row, .firebase-hosting-animation-row, .firebase-hosting-coverage-row, .firebase-hosting-cloud-row, .firebase-hosting-highlights-row, .firebase-hosting-learn-row, .firebase-hosting-stats-row, .firebase-hosting-features-row, .firebase-hosting-features-button-row, .firebase-hosting-cta-row { --hosting-content-width: 1248px; --hosting-description-font: 400 16px/24px 'Roboto'; --hosting-primary-header-font: 500 44px/58px 'Google Sans'; --hosting-secondary-header-font: 500 22px/26px 'Google Sans'; --hosting-section-bottom-padding: 100px; } .firebase-hosting-hero-row { --hosting-hero-header-font: 500 52px/58px 'Google Sans'; --hosting-hero-padding-top: 140px; } .firebase-hosting-steps-row { --hosting-step-margin-inline: auto; --hosting-step-max-width: 300px; } .firebase-hosting-coverage-row { --hosting-coverage-list-margin-right: 200px; --hosting-coverage-margin-left: -120px; --hosting-coverage-padding: 0 0 0 50px; } .firebase-hosting-stats-row { --hosting-stats-figure-margin-bottom: 24px; --hosting-stats-img-size: 200px; --hosting-stats-primary-font: 700 52px/68px 'Google Sans'; --hosting-stats-row-padding: 100px 0; --hosting-stats-secondary-font: 500 24px/24px 'Google Sans'; } .firebase-hosting-steps-row, .firebase-hosting-highlights-row { --hosting-icon-size: 88px; } .firebase-hosting-steps-row, .firebase-hosting-highlights-row, .firebase-hosting-learn-row, .firebase-hosting-features-row { --hosting-text-align: center; } @media screen and (max-width: 1300px) { .firebase-hosting-coverage-row { --hosting-coverage-list-margin-right: 12vw; --hosting-coverage-margin-left: -6vw; } } @media screen and (max-width: 600px) { .firebase-hosting-button { --hosting-button-font: 500 14px/52px 'Google Sans'; } .firebase-hosting-hero-row .button, .firebase-hosting-cta-button-row .button { margin-inline: auto !important; /* Center button on mobile */ } .firebase-hosting-hero-row, .firebase-hosting-steps-row, .firebase-hosting-animation-row, .firebase-hosting-coverage-row, .firebase-hosting-cloud-row, .firebase-hosting-highlights-row, .firebase-hosting-learn-row, .firebase-hosting-stats-row, .firebase-hosting-features-row, .firebase-hosting-features-button-row, .firebase-hosting-cta-row { --hosting-description-font: 400 14px/22px 'Roboto'; --hosting-primary-header-font: 500 32px/38px 'Google Sans'; --hosting-secondary-header-font: 500 22px/26px 'Google Sans'; --hosting-section-bottom-padding: 72px; } .firebase-hosting-hero-row { --hosting-hero-header-font: 500 30px/34px 'Google Sans'; text-align: center; --hosting-hero-padding-top: 0; } .firebase-hosting-steps-row { --hosting-step-margin-inline: unset; --hosting-step-max-width: unset; } .firebase-hosting-steps-row .devsite-landing-row-item-description { margin-bottom: 16px !important; } .firebase-hosting-coverage-row { --hosting-coverage-list-margin-right: 200px; --hosting-coverage-margin-left: auto; --hosting-coverage-padding: 6vw; } .firebase-hosting-stats-row .devsite-landing-row-group { grid-template-columns: auto !important; /* Make one item per row */ } .firebase-hosting-stats-row { --hosting-stats-figure-margin-bottom: 0; --hosting-stats-img-size: 100px; --hosting-stats-primary-font: 700 32px/68px 'Google Sans'; --hosting-stats-row-padding: 36px 0; --hosting-stats-secondary-font: 500 16px/24px 'Google Sans'; } .firebase-hosting-stats:not(:last-child), .firebase-hosting-learn:not(:last-child) { margin-bottom: 24px; } .firebase-hosting-highlights-row { --hosting-icon-size: unset; } .firebase-hosting-steps-row, .firebase-hosting-highlights-row, .firebase-hosting-learn-row, .firebase-hosting-features-row { --hosting-text-align: unset; } } .firebase-hosting-button { font: var(--hosting-button-font); height: 56px; width: 220px; } .devsite-landing-row-item-image { background: transparent !important; max-width: 650px; } .devsite-landing-row:not([background]) { background-color: transparent !important; } /* ---------------- * * Dark mode styles * * ---------------- */ :root { --hosting-bg-color: #fff; --hosting-link-blue: #0b57d0; --hosting-secondary-text-color: var(--tenant-secondary-text-color); } .color-scheme--dark { --hosting-bg-color: #112537; --hosting-link-blue: #7EC5EA; --hosting-secondary-text-color: #fff; background: var(--hosting-bg-color); .firebase-hosting-hero-row, .firebase-hosting-coverage-row, .firebase-hosting-stats-row, .firebase-hosting-cta-row { --hosting-blue: #fff; } .devsite-main-content img { filter: unset; } .firebase-hosting-cta-row { background: none; } .firebase-hosting-button { background-color: transparent; color: var(--hosting-link-blue); } .firebase-hosting-button.button-primary { background-color: #fafafa; color: var(--hosting-bg-color); } .firebase-hosting-learn-row h3 { color: #fff; } } /* ---- * * Hero * * ---- */ .firebase-hosting-hero-row { background: bottom / cover no-repeat url(/images/products/hosting/hero-background.png); min-height: 800px; } .firebase-hosting-hero { margin: auto; max-width: var(--hosting-content-width); padding-top: var(--hosting-hero-padding-top); } .firebase-hosting-hero-label { color: var(--hosting-blue) !important; font: 500 22px/50px 'Roboto' !important; margin-bottom: 24px; } .firebase-hosting-hero h3 { color: var(--hosting-blue); font: var(--hosting-hero-header-font) !important; /* Overrides default size */ } .firebase-hosting-hero span { color: var(--hosting-secondary-text-color); font: 400 16px/28px 'Roboto'; max-width: 488px; } .firebase-hosting-hero .devsite-landing-row-item-description-content { max-width: 452px; } .firebase-hosting-hero .button-primary { color: #fff; } @media screen and (min-width: 1400px) { .firebase-hosting-hero .devsite-landing-row-item-image { transform: scale(1.5) } } /* -------- * * Features * * -------- */ .firebase-hosting-features-row { margin: auto; max-width: var(--hosting-content-width); } .firebase-hosting-features-row h2 { color: var(--tenant-primary-text-color); font: var(--hosting-primary-header-font); text-align: var(--hosting-text-align); } .firebase-hosting-features-row span { color: var(--hosting-secondary-text-color); font: var(--hosting-description-font); } .firebase-hosting-features-row .devsite-landing-row-item-description-content { margin: auto; max-width: 200px; } .firebase-hosting-features-row figure { margin: 52px auto 32px; } .firebase-hosting-features-button-row { padding-bottom: var(--hosting-section-bottom-padding); } /* ----- * * Steps * * ----- */ .firebase-hosting-steps-row { margin: auto; max-width: var(--hosting-content-width); padding-bottom: var(--hosting-section-bottom-padding); text-align: var(--hosting-text-align); } .firebase-hosting-step { margin-inline: var(--hosting-step-margin-inline); max-width: var(--hosting-step-max-width); } .firebase-hosting-step .devsite-landing-row-item-icon-container { height: var(--hosting-icon-size); margin-inline: var(--hosting-step-margin-inline); width: var(--hosting-icon-size); } .firebase-hosting-step img { height: var(--hosting-icon-size); width: var(--hosting-icon-size); } .firebase-hosting-steps-row h2 { color: var(--tenant-primary-text-color); font: var(--hosting-primary-header-font) !important; /* Overrides default size */ } .firebase-hosting-step-row h3 { color: var(--tenant-primary-text-color); font: var(--hosting-secondary-header-font); } .firebase-hosting-steps-row span { color: var(--hosting-secondary-text-color); font: var(--hosting-description-font); } /* --------- * * Animation * * --------- */ .firebase-hosting-animation-row { margin: auto; max-width: var(--hosting-content-width); padding-bottom: var(--hosting-section-bottom-padding); } /* -------- * * Coverage * * -------- */ .firebase-hosting-coverage-row { margin: auto; max-width: var(--hosting-content-width); padding-bottom: var(--hosting-section-bottom-padding); } .firebase-hosting-coverage-row .devsite-landing-row-inner { padding-left: 0; } .firebase-hosting-coverage figure { margin-left: var(--hosting-coverage-margin-left); } .firebase-hosting-coverage .devsite-landing-row-item-description { padding: var(--hosting-coverage-padding) !important; } .firebase-hosting-coverage-row h3 { color: var(--tenant-primary-text-color); font: var(--hosting-primary-header-font) !important; /* Overrides default size */ } .firebase-hosting-coverage-row span { color: var(--hosting-secondary-text-color); font: var(--hosting-description-font); } .firebase-hosting-coverage ul { display: flex; flex-wrap: wrap; list-style:none; padding: 0; } .firebase-hosting-coverage li { color: var(--tenant-primary-text-color); flex: 33.33%; float: left; font: var(--hosting-secondary-header-font); padding: 40px 0 0; } /* ----- * * Stats * * ----- */ /* [1] Forces row to be light gray instead of white */ /* [2] Overrides top/bottom padding of 0px */ .firebase-hosting-stats-row { background: #fafafa !important; /* [1] */ padding: var(--hosting-stats-row-padding) !important; /* [2] */ } .firebase-hosting-stats-row figure { height: unset !important; margin-bottom: var(--hosting-stats-figure-margin-bottom); } .firebase-hosting-stats-row img { max-height: unset; width: var(--hosting-stats-img-size); } .firebase-hosting-stats { max-width: var(--hosting-content-width); } .firebase-hosting-stats-number { color: var(--hosting-blue); display: block; font: var(--hosting-stats-primary-font); } .firebase-hosting-stats-noun { color: var(--tenant-primary-text-color); display: block; font: var(--hosting-stats-secondary-font); } /* ----- * * Cloud * * ----- */ .firebase-hosting-cloud-row { margin: auto; max-width: var(--hosting-content-width); padding-bottom: var(--hosting-section-bottom-padding); } .firebase-hosting-cloud-row h3 { color: var(--tenant-primary-text-color); font: var(--hosting-primary-header-font) !important; /* Overrides default size */ max-width: 320px; } .firebase-hosting-cloud-row span { color: var(--hosting-secondary-text-color); font: var(--hosting-description-font); } .firebase-hosting-cloud-row .devsite-landing-row-item-description-content { max-width: 468px; } /* ---------- * * Highlights * * ---------- */ .firebase-hosting-highlights-row { margin: auto; max-width: var(--hosting-content-width); padding-bottom: var(--hosting-section-bottom-padding); } .firebase-hosting-highlight { max-width: 432px; } .firebase-hosting-highlight .devsite-landing-row-item-icon-container { width: 64px; } .firebase-hosting-highlight img { height: unset; width: unset; } .firebase-hosting-highlights-row h2 { color: var(--tenant-primary-text-color); font: var(--hosting-primary-header-font) !important; /* Overrides default size */ text-align: var(--hosting-text-align); } .firebase-hosting-highlights-row h3 { color: var(--tenant-primary-text-color); font: var(--hosting-secondary-header-font); } .firebase-hosting-highlights-row span { color: var(--hosting-secondary-text-color); font: var(--hosting-description-font); } .firebase-hosting-highlights-row a { font: var(--hosting-description-font); width: unset; height: unset; } /* ----- * * Learn * * ----- */ .firebase-hosting-learn-row { margin: auto; max-width: var(--hosting-content-width); } .firebase-hosting-learn .devsite-landing-row-item-description { margin-inline: auto; max-width: 320px; } .firebase-hosting-learn-row h2 { color: var(--tenant-primary-text-color); font: var(--hosting-primary-header-font) !important; /* Overrides default size */ text-align: var(--hosting-text-align); } .firebase-hosting-learn-row h3 { color: var(--tenant-primary-text-color); font: var(--hosting-secondary-header-font); } .firebase-hosting-learn-row span { color: var(--hosting-secondary-text-color); font: var(--hosting-description-font); } /* --- * * CTA * * --- */ .firebase-hosting-cta-row { background: top / cover no-repeat url(/images/products/hosting/cta.png); padding: 40px 0 180px !important; /* Properly space background */ text-align: center; } .firebase-hosting-cta-row img { display: block; height: 120px; margin: 60px auto 40px; } .firebase-hosting-cta-row h3 { color: var(--hosting-blue); font: var(--hosting-primary-header-font); } .firebase-hosting-cta-row span { color: var(--hosting-blue); font: var(--hosting-secondary-header-font); } .firebase-hosting-cta-button-row { padding: 0; } .firebase-hosting-cta-button-row a { color: #fff; } .firebase-hosting-cta-button-row .button { margin-top: -240px; } .firebase-hosting-cta-button-row .devsite-landing-row-item-buttons { padding: 0; } </style> <div class="devsite-article-meta nocontent" role="navigation"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item "> <a href="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> </ul> </div> <devsite-feedback position="header" project-name="Firebase" product-id="719752" bucket="" context="" version="t-devsite-webserver-20241114-r00-rc02.464922260396498922" data-label="Send Feedback Button" track-type="feedback" track-name="sendFeedbackLink" track-metadata-position="header" class="nocontent" project-feedback-url="https://firebase.google.com/support/contact/bugs-features/" project-icon="https://firebase.google.com/_static/firebase/images/icon.svg" project-support-url="https://firebase.google.com/support/" > <button> Send feedback </button> </devsite-feedback> <devsite-feature-tooltip ack-key="AckCollectionsBookmarkTooltipDismiss" analytics-category="Site-Wide Custom Events" analytics-action-show="Callout Profile displayed" analytics-action-close="Callout Profile dismissed" analytics-label="Create Collection Callout" class="devsite-page-bookmark-tooltip nocontent" dismiss-button="true" id="devsite-collections-dropdown" dismiss-button-text="Dismiss" close-button-text="Got it"> <devsite-bookmark></devsite-bookmark> <span slot="popout-heading"> Stay organized with collections </span> <span slot="popout-contents"> Save and categorize content based on your preferences. </span> </devsite-feature-tooltip> <devsite-toc class="devsite-nav" depth="2" 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 devsite-landing-row-50 devsite-landing-row-hero firebase-hosting-hero-row" header-position="top" > <div class="devsite-landing-row-inner"> <div class="devsite-landing-row-group"> <div class="devsite-landing-row-item firebase-hosting-hero" description-position="bottom" > <div class="devsite-landing-row-item-media "> <figure class="devsite-landing-row-item-image"> <picture> <img alt="" src="https://firebase.google.com/static/images/products/hosting/hero.png" srcset="https://firebase.google.com/static/images/products/hosting/hero_36.png 36w,https://firebase.google.com/static/images/products/hosting/hero_48.png 48w,https://firebase.google.com/static/images/products/hosting/hero_72.png 72w,https://firebase.google.com/static/images/products/hosting/hero_96.png 96w,https://firebase.google.com/static/images/products/hosting/hero_480.png 480w,https://firebase.google.com/static/images/products/hosting/hero_720.png 720w,https://firebase.google.com/static/images/products/hosting/hero_856.png 856w,https://firebase.google.com/static/images/products/hosting/hero_960.png 960w,https://firebase.google.com/static/images/products/hosting/hero_1440.png 1440w,https://firebase.google.com/static/images/products/hosting/hero_1920.png 1920w,https://firebase.google.com/static/images/products/hosting/hero_2880.png 2880w" sizes="(max-width: 600px) 100vw, (max-width: 840px) 50vw, 708px" fetchpriority="high"> </picture> </figure> </div> <div class="devsite-landing-row-item-description" > <div class="devsite-landing-row-item-body"> <h3 id="span-classfirebase-hosting-hero-labelfirebase-hostingspanbr-fast-secure-hosting-for-static-websites" data-text="Firebase Hosting Fast, secure hosting for static websites " class="hide-from-toc no-link" tabindex="0"> <span class="firebase-hosting-hero-label">Firebase Hosting</span><br> Fast, secure hosting for static websites </h3> <div class="devsite-landing-row-item-description-content"> <span>Deploy static websites in seconds using a global CDN. Preview, deploy, and roll back with the Firebase CLI.<br/><br/> New: If you're building server-rendered Angular or Next.js apps, check out next-generation <a href="https://firebase.google.com/products/app-hosting">Firebase App Hosting,</a> a full-stack solution for modern web frameworks.</span> </div> <div class="devsite-landing-row-item-buttons"> <a href="https://firebase.google.com/pricing" class="button button-primary firebase-hosting-button " data-action="hero-see-plans-click" data-label="/products/hosting" data-category="firebase-hosting" >See plans</a> <a href="https://console.firebase.google.com/project/_/hosting" class="button firebase-hosting-button " data-action="hero-visit-console-click" data-category="firebase-hosting" data-label="/products/hosting" >Visit console</a> </div> </div> </div> </div> </div> </div> </section> <section class="devsite-landing-row devsite-landing-row-4-up devsite-landing-row-logos firebase-hosting-features-row" header-position="top" > <div class="devsite-landing-row-inner"> <header class="devsite-landing-row-header" > <div class="devsite-landing-row-header-text"> <h2 id="features-to-simplify-your-life" data-text="Features to simplify your life" tabindex="0"> Features to simplify your life </h2> </div> </header> <div class="devsite-landing-row-group"> <div class="devsite-landing-row-item" description-position="bottom" > <div class="devsite-landing-row-item-media "> <figure class="devsite-landing-row-item-custom-image" > <div class="devsite-landing-row-item-custom-image-icon-wrapper"> <div class="devsite-landing-row-item-custom-image-icon-container" size="medium" > <picture> <source class="devsite-landing-row-item-custom-image-icon devsite-dark-theme" alt="" media="(prefers-color-scheme: dark)" srcset="https://firebase.google.com/static/images/products/hosting/feature1-dark.svg" sizes="192px" loading="lazy" > <img class="devsite-landing-row-item-custom-image-icon" alt="" src="https://firebase.google.com/static/images/products/hosting/feature1.svg" srcset="https://firebase.google.com/static/images/products/hosting/feature1.svg" sizes="192px" loading="lazy" > </picture> </div> </div> </figure> </div> <div class="devsite-landing-row-item-description" > <div class="devsite-landing-row-item-body"> <div class="devsite-landing-row-item-description-content"> <span>Preview your site with your team before going live</span> </div> </div> </div> </div> <div class="devsite-landing-row-item" description-position="bottom" > <div class="devsite-landing-row-item-media "> <figure class="devsite-landing-row-item-custom-image" > <div class="devsite-landing-row-item-custom-image-icon-wrapper"> <div class="devsite-landing-row-item-custom-image-icon-container" size="medium" > <picture> <source class="devsite-landing-row-item-custom-image-icon devsite-dark-theme" alt="" media="(prefers-color-scheme: dark)" srcset="https://firebase.google.com/static/images/products/hosting/feature2-dark.svg" sizes="192px" loading="lazy" > <img class="devsite-landing-row-item-custom-image-icon" alt="" src="https://firebase.google.com/static/images/products/hosting/feature2.svg" srcset="https://firebase.google.com/static/images/products/hosting/feature2.svg" sizes="192px" loading="lazy" > </picture> </div> </div> </figure> </div> <div class="devsite-landing-row-item-description" > <div class="devsite-landing-row-item-body"> <div class="devsite-landing-row-item-description-content"> <span>Serve the smallest, best-compressed version of your content, automatically, with Brotli encoding</span> </div> </div> </div> </div> <div class="devsite-landing-row-item" description-position="bottom" > <div class="devsite-landing-row-item-media "> <figure class="devsite-landing-row-item-custom-image" > <div class="devsite-landing-row-item-custom-image-icon-wrapper"> <div class="devsite-landing-row-item-custom-image-icon-container" size="medium" > <picture> <source class="devsite-landing-row-item-custom-image-icon devsite-dark-theme" alt="" media="(prefers-color-scheme: dark)" srcset="https://firebase.google.com/static/images/products/hosting/feature3-dark.svg" sizes="192px" loading="lazy" > <img class="devsite-landing-row-item-custom-image-icon" alt="" src="https://firebase.google.com/static/images/products/hosting/feature3.svg" srcset="https://firebase.google.com/static/images/products/hosting/feature3.svg" sizes="192px" loading="lazy" > </picture> </div> </div> </figure> </div> <div class="devsite-landing-row-item-description" > <div class="devsite-landing-row-item-body"> <div class="devsite-landing-row-item-description-content"> <span>Domain management -- use a Firebase-provided subdomain or register your own custom domain</span> </div> </div> </div> </div> <div class="devsite-landing-row-item" description-position="bottom" > <div class="devsite-landing-row-item-media "> <figure class="devsite-landing-row-item-custom-image" > <div class="devsite-landing-row-item-custom-image-icon-wrapper"> <div class="devsite-landing-row-item-custom-image-icon-container" size="medium" > <picture> <source class="devsite-landing-row-item-custom-image-icon devsite-dark-theme" alt="" media="(prefers-color-scheme: dark)" srcset="https://firebase.google.com/static/images/products/hosting/feature4-dark.svg" sizes="192px" loading="lazy" > <img class="devsite-landing-row-item-custom-image-icon" alt="" src="https://firebase.google.com/static/images/products/hosting/feature4.svg" srcset="https://firebase.google.com/static/images/products/hosting/feature4.svg" sizes="192px" loading="lazy" > </picture> </div> </div> </figure> </div> <div class="devsite-landing-row-item-description" > <div class="devsite-landing-row-item-body"> <div class="devsite-landing-row-item-description-content"> <span>No-cost SSL certificate for security out of the box</span> </div> </div> </div> </div> <div class="devsite-landing-row-item" description-position="bottom" > <div class="devsite-landing-row-item-media "> <figure class="devsite-landing-row-item-custom-image" > <div class="devsite-landing-row-item-custom-image-icon-wrapper"> <div class="devsite-landing-row-item-custom-image-icon-container" size="medium" > <picture> <source class="devsite-landing-row-item-custom-image-icon devsite-dark-theme" alt="" media="(prefers-color-scheme: dark)" srcset="https://firebase.google.com/static/images/products/hosting/feature5-dark.svg" sizes="192px" loading="lazy" > <img class="devsite-landing-row-item-custom-image-icon" alt="" src="https://firebase.google.com/static/images/products/hosting/feature5.svg" srcset="https://firebase.google.com/static/images/products/hosting/feature5.svg" sizes="192px" loading="lazy" > </picture> </div> </div> </figure> </div> <div class="devsite-landing-row-item-description" > <div class="devsite-landing-row-item-body"> <div class="devsite-landing-row-item-description-content"> <span>Auto-provisioned CDN for snappy access from anywhere</span> </div> </div> </div> </div> <div class="devsite-landing-row-item" description-position="bottom" > <div class="devsite-landing-row-item-media "> <figure class="devsite-landing-row-item-custom-image" > <div class="devsite-landing-row-item-custom-image-icon-wrapper"> <div class="devsite-landing-row-item-custom-image-icon-container" size="medium" > <picture> <source class="devsite-landing-row-item-custom-image-icon devsite-dark-theme" alt="" media="(prefers-color-scheme: dark)" srcset="https://firebase.google.com/static/images/products/hosting/feature6-dark.svg" sizes="192px" loading="lazy" > <img class="devsite-landing-row-item-custom-image-icon" alt="" src="https://firebase.google.com/static/images/products/hosting/feature6.svg" srcset="https://firebase.google.com/static/images/products/hosting/feature6.svg" sizes="192px" loading="lazy" > </picture> </div> </div> </figure> </div> <div class="devsite-landing-row-item-description" > <div class="devsite-landing-row-item-body"> <div class="devsite-landing-row-item-description-content"> <span>Top-notch documentation, learning resources, and sample apps</span> </div> </div> </div> </div> <div class="devsite-landing-row-item" description-position="bottom" > <div class="devsite-landing-row-item-media "> <figure class="devsite-landing-row-item-custom-image" > <div class="devsite-landing-row-item-custom-image-icon-wrapper"> <div class="devsite-landing-row-item-custom-image-icon-container" size="medium" > <picture> <source class="devsite-landing-row-item-custom-image-icon devsite-dark-theme" alt="" media="(prefers-color-scheme: dark)" srcset="https://firebase.google.com/static/images/products/hosting/feature7-dark.svg" sizes="192px" loading="lazy" > <img class="devsite-landing-row-item-custom-image-icon" alt="" src="https://firebase.google.com/static/images/products/hosting/feature7.svg" srcset="https://firebase.google.com/static/images/products/hosting/feature7.svg" sizes="192px" loading="lazy" > </picture> </div> </div> </figure> </div> <div class="devsite-landing-row-item-description" > <div class="devsite-landing-row-item-body"> <div class="devsite-landing-row-item-description-content"> <span>Effective scalability backed by Google Cloud</span> </div> </div> </div> </div> <div class="devsite-landing-row-item" description-position="bottom" > <div class="devsite-landing-row-item-media "> <figure class="devsite-landing-row-item-custom-image" > <div class="devsite-landing-row-item-custom-image-icon-wrapper"> <div class="devsite-landing-row-item-custom-image-icon-container" size="medium" > <picture> <source class="devsite-landing-row-item-custom-image-icon devsite-dark-theme" alt="" media="(prefers-color-scheme: dark)" srcset="https://firebase.google.com/static/images/products/hosting/feature8-dark.svg" sizes="192px" loading="lazy" > <img class="devsite-landing-row-item-custom-image-icon" alt="" src="https://firebase.google.com/static/images/products/hosting/feature8.svg" srcset="https://firebase.google.com/static/images/products/hosting/feature8.svg" sizes="192px" loading="lazy" > </picture> </div> </div> </figure> </div> <div class="devsite-landing-row-item-description" > <div class="devsite-landing-row-item-body"> <div class="devsite-landing-row-item-description-content"> <span>Support for when you get stuck comes free of charge</span> </div> </div> </div> </div> </div> </div> </section> <section class="devsite-landing-row devsite-landing-row-1-up devsite-landing-row-item-centered devsite-landing-row-100 firebase-hosting-features-button-row" 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"> <div class="devsite-landing-row-item-buttons"> <a href="https://firebase.google.com/docs/hosting" class="button firebase-hosting-button " data-category="Firebase Hosting Features" data-label="Read more" >Read more</a> </div> </div> </div> </div> </div> </div> </section> <section class="devsite-landing-row devsite-landing-row-3-up firebase-hosting-steps-row" header-position="top" > <div class="devsite-landing-row-inner"> <header class="devsite-landing-row-header" > <div class="devsite-landing-row-header-text"> <h2 id="three-steps-to-deploy-your-site" data-text="Three steps to deploy your site" tabindex="0"> Three steps to deploy your site </h2> </div> </header> <div class="devsite-landing-row-group"> <div class="devsite-landing-row-item devsite-landing-row-item-no-media firebase-hosting-step" description-position="bottom" > <div class="devsite-landing-row-item-description" icon-position="top" > <div class="devsite-landing-row-item-icon-container" size="medium" > <picture> <img class="devsite-landing-row-item-icon" alt="" src="https://firebase.google.com/static/images/products/hosting/step1.png" srcset="https://firebase.google.com/static/images/products/hosting/step1_36.png 36w,https://firebase.google.com/static/images/products/hosting/step1_48.png 48w,https://firebase.google.com/static/images/products/hosting/step1_72.png 72w,https://firebase.google.com/static/images/products/hosting/step1_96.png 96w,https://firebase.google.com/static/images/products/hosting/step1_480.png 480w,https://firebase.google.com/static/images/products/hosting/step1_720.png 720w,https://firebase.google.com/static/images/products/hosting/step1_856.png 856w,https://firebase.google.com/static/images/products/hosting/step1_960.png 960w,https://firebase.google.com/static/images/products/hosting/step1_1440.png 1440w,https://firebase.google.com/static/images/products/hosting/step1_1920.png 1920w,https://firebase.google.com/static/images/products/hosting/step1_2880.png 2880w" sizes="64px" loading="lazy" > </picture> </div> <div class="devsite-landing-row-item-body"> <h3 id="test-locally" data-text="Test locally" class="hide-from-toc no-link" tabindex="0"> Test locally </h3> <div class="devsite-landing-row-item-description-content"> <span>Open your web app at a locally hosted URL</span> </div> </div> </div> </div> <div class="devsite-landing-row-item devsite-landing-row-item-no-media firebase-hosting-step" description-position="bottom" > <div class="devsite-landing-row-item-description" icon-position="top" > <div class="devsite-landing-row-item-icon-container" size="medium" > <picture> <img class="devsite-landing-row-item-icon" alt="" src="https://firebase.google.com/static/images/products/hosting/step2.png" srcset="https://firebase.google.com/static/images/products/hosting/step2_36.png 36w,https://firebase.google.com/static/images/products/hosting/step2_48.png 48w,https://firebase.google.com/static/images/products/hosting/step2_72.png 72w,https://firebase.google.com/static/images/products/hosting/step2_96.png 96w,https://firebase.google.com/static/images/products/hosting/step2_480.png 480w,https://firebase.google.com/static/images/products/hosting/step2_720.png 720w,https://firebase.google.com/static/images/products/hosting/step2_856.png 856w,https://firebase.google.com/static/images/products/hosting/step2_960.png 960w,https://firebase.google.com/static/images/products/hosting/step2_1440.png 1440w,https://firebase.google.com/static/images/products/hosting/step2_1920.png 1920w,https://firebase.google.com/static/images/products/hosting/step2_2880.png 2880w" sizes="64px" loading="lazy" > </picture> </div> <div class="devsite-landing-row-item-body"> <h3 id="preview-and-share-changes" data-text="Preview and share changes" class="hide-from-toc no-link" tabindex="0"> Preview and share changes </h3> <div class="devsite-landing-row-item-description-content"> <span>Deploy to a sharable, temporary preview channel</span> </div> </div> </div> </div> <div class="devsite-landing-row-item devsite-landing-row-item-no-media firebase-hosting-step" description-position="bottom" > <div class="devsite-landing-row-item-description" icon-position="top" > <div class="devsite-landing-row-item-icon-container" size="medium" > <picture> <img class="devsite-landing-row-item-icon" alt="" src="https://firebase.google.com/static/images/products/hosting/step3.png" srcset="https://firebase.google.com/static/images/products/hosting/step3_36.png 36w,https://firebase.google.com/static/images/products/hosting/step3_48.png 48w,https://firebase.google.com/static/images/products/hosting/step3_72.png 72w,https://firebase.google.com/static/images/products/hosting/step3_96.png 96w,https://firebase.google.com/static/images/products/hosting/step3_480.png 480w,https://firebase.google.com/static/images/products/hosting/step3_720.png 720w,https://firebase.google.com/static/images/products/hosting/step3_856.png 856w,https://firebase.google.com/static/images/products/hosting/step3_960.png 960w,https://firebase.google.com/static/images/products/hosting/step3_1440.png 1440w,https://firebase.google.com/static/images/products/hosting/step3_1920.png 1920w,https://firebase.google.com/static/images/products/hosting/step3_2880.png 2880w" sizes="64px" loading="lazy" > </picture> </div> <div class="devsite-landing-row-item-body"> <h3 id="deploy-live" data-text="Deploy live" class="hide-from-toc no-link" tabindex="0"> Deploy live </h3> <div class="devsite-landing-row-item-description-content"> <span>Clone to your live channel, or deploy from your local project directory</span> </div> </div> </div> </div> </div> </div> </section> <section class="devsite-landing-row devsite-landing-row-1-up firebase-hosting-animation-row" header-position="top" > <div class="devsite-landing-row-inner"> <div class="devsite-landing-row-html"> <video src="/static/site-assets/hosting-ide-animation.webm" autoplay muted>Alas, your browser doesn't support HTML5 video. That's OK! You can still<a href="/static/site-assets/hosting-ide- animation.webm">download the video</a> and watch it with a video player.</video> </div> </div> </section> <section class="devsite-landing-row devsite-landing-row-1-up devsite-landing-row-hero devsite-landing-row-50 firebase-hosting-coverage-row" header-position="top" > <div class="devsite-landing-row-inner"> <div class="devsite-landing-row-group"> <div class="devsite-landing-row-item firebase-hosting-coverage" description-position="bottom" > <div class="devsite-landing-row-item-media devsite-landing-row-item-media-left "> <figure class="devsite-landing-row-item-image"> <picture> <img alt="" src="https://firebase.google.com/static/images/products/hosting/coverage.png" srcset="https://firebase.google.com/static/images/products/hosting/coverage_36.png 36w,https://firebase.google.com/static/images/products/hosting/coverage_48.png 48w,https://firebase.google.com/static/images/products/hosting/coverage_72.png 72w,https://firebase.google.com/static/images/products/hosting/coverage_96.png 96w,https://firebase.google.com/static/images/products/hosting/coverage_480.png 480w,https://firebase.google.com/static/images/products/hosting/coverage_720.png 720w,https://firebase.google.com/static/images/products/hosting/coverage_856.png 856w,https://firebase.google.com/static/images/products/hosting/coverage_960.png 960w,https://firebase.google.com/static/images/products/hosting/coverage_1440.png 1440w,https://firebase.google.com/static/images/products/hosting/coverage_1920.png 1920w,https://firebase.google.com/static/images/products/hosting/coverage_2880.png 2880w" sizes="(max-width: 600px) 100vw, (max-width: 840px) 50vw, 708px" loading="lazy" > </picture> </figure> </div> <div class="devsite-landing-row-item-description" > <div class="devsite-landing-row-item-body"> <h3 id="we-have-you-covered" data-text="We have you covered" class="hide-from-toc no-link" tabindex="0"> We have you covered </h3> <div class="devsite-landing-row-item-description-content"> <span>Easily deploy static sites. Upload your built static assets with a single CLI command, or deploy common static frameworks like Vite and Flutter with no config needed.</span> <ul> <li>React</li> <li>Vite</li> <li>Vue</li> <li>Flutter</li> <li></li> <li></li> </ul> </div> </div> </div> </div> </div> </div> </section> <section class="devsite-landing-row devsite-landing-row-1-up devsite-landing-row-50 devsite-landing-row-hero firebase-hosting-cloud-row" header-position="top" > <div class="devsite-landing-row-inner"> <div class="devsite-landing-row-group"> <div class="devsite-landing-row-item" description-position="bottom" > <div class="devsite-landing-row-item-media "> <figure class="devsite-landing-row-item-image"> <picture> <img alt="" src="https://firebase.google.com/static/images/products/hosting/cloud.png" srcset="https://firebase.google.com/static/images/products/hosting/cloud_36.png 36w,https://firebase.google.com/static/images/products/hosting/cloud_48.png 48w,https://firebase.google.com/static/images/products/hosting/cloud_72.png 72w,https://firebase.google.com/static/images/products/hosting/cloud_96.png 96w,https://firebase.google.com/static/images/products/hosting/cloud_480.png 480w,https://firebase.google.com/static/images/products/hosting/cloud_720.png 720w,https://firebase.google.com/static/images/products/hosting/cloud_856.png 856w,https://firebase.google.com/static/images/products/hosting/cloud_960.png 960w,https://firebase.google.com/static/images/products/hosting/cloud_1440.png 1440w,https://firebase.google.com/static/images/products/hosting/cloud_1920.png 1920w,https://firebase.google.com/static/images/products/hosting/cloud_2880.png 2880w" sizes="(max-width: 600px) 100vw, (max-width: 840px) 50vw, 708px" loading="lazy" > </picture> </figure> </div> <div class="devsite-landing-row-item-description" > <div class="devsite-landing-row-item-body"> <h3 id="forward-requests-to-google-cloud" data-text="Forward requests to Google Cloud" class="hide-from-toc no-link" tabindex="0"> Forward requests to Google Cloud </h3> <div class="devsite-landing-row-item-description-content"> <span>Improve response times and reduce compute costs when you cache requests to Cloud Functions for Firebase and Cloud Run in our global CDN.</span> </div> </div> </div> </div> </div> </div> </section> <section class="devsite-landing-row devsite-landing-row-2-up firebase-hosting-highlights-row" header-position="top" > <div class="devsite-landing-row-inner"> <header class="devsite-landing-row-header" > <div class="devsite-landing-row-header-text"> <h2 id="fast-and-secure-out-of-the-box" data-text="Fast and secure, out of the box" tabindex="0"> Fast and secure, out of the box </h2> </div> </header> <div class="devsite-landing-row-group"> <div class="devsite-landing-row-item devsite-landing-row-item-no-media firebase-hosting-highlight" description-position="bottom" > <div class="devsite-landing-row-item-description" icon-position="top" > <div class="devsite-landing-row-item-icon-container" size="medium" > <picture> <img class="devsite-landing-row-item-icon" alt="" src="https://firebase.google.com/static/images/products/hosting/fast-and-secure.png" srcset="https://firebase.google.com/static/images/products/hosting/fast-and-secure_36.png 36w,https://firebase.google.com/static/images/products/hosting/fast-and-secure_48.png 48w,https://firebase.google.com/static/images/products/hosting/fast-and-secure_72.png 72w,https://firebase.google.com/static/images/products/hosting/fast-and-secure_96.png 96w,https://firebase.google.com/static/images/products/hosting/fast-and-secure_480.png 480w,https://firebase.google.com/static/images/products/hosting/fast-and-secure_720.png 720w,https://firebase.google.com/static/images/products/hosting/fast-and-secure_856.png 856w,https://firebase.google.com/static/images/products/hosting/fast-and-secure_960.png 960w,https://firebase.google.com/static/images/products/hosting/fast-and-secure_1440.png 1440w,https://firebase.google.com/static/images/products/hosting/fast-and-secure_1920.png 1920w,https://firebase.google.com/static/images/products/hosting/fast-and-secure_2880.png 2880w" sizes="64px" loading="lazy" > </picture> </div> <div class="devsite-landing-row-item-body"> <h3 id="fast-and-secure-out-of-the-box" data-text="Fast and secure, out of the box" class="hide-from-toc no-link" tabindex="0"> Fast and secure, out of the box </h3> <div class="devsite-landing-row-item-description-content"> <span>Deliver your content securely with built-in zero-configuration SSL certificates. Files are cached at CDN edges around the world, and served as gzip or Brotli for the smallest, best-compressed version of your content, based on what your user’s client is able to handle.</span> </div> <div class="devsite-landing-row-item-buttons"> <a href="https://firebase.blog/posts/2020/08/firebase-hosting-new-features" class="button button-white " data-label="/products/hosting" data-category="firebase-hosting" data-action="firebase-learn-more-click" >Learn more</a> </div> </div> </div> </div> <div class="devsite-landing-row-item devsite-landing-row-item-no-media firebase-hosting-highlight" description-position="bottom" > <div class="devsite-landing-row-item-description" icon-position="top" > <div class="devsite-landing-row-item-icon-container" size="medium" > <picture> <img class="devsite-landing-row-item-icon" alt="" src="https://firebase.google.com/static/images/products/hosting/start-now.png" srcset="https://firebase.google.com/static/images/products/hosting/start-now_36.png 36w,https://firebase.google.com/static/images/products/hosting/start-now_48.png 48w,https://firebase.google.com/static/images/products/hosting/start-now_72.png 72w,https://firebase.google.com/static/images/products/hosting/start-now_96.png 96w,https://firebase.google.com/static/images/products/hosting/start-now_480.png 480w,https://firebase.google.com/static/images/products/hosting/start-now_720.png 720w,https://firebase.google.com/static/images/products/hosting/start-now_856.png 856w,https://firebase.google.com/static/images/products/hosting/start-now_960.png 960w,https://firebase.google.com/static/images/products/hosting/start-now_1440.png 1440w,https://firebase.google.com/static/images/products/hosting/start-now_1920.png 1920w,https://firebase.google.com/static/images/products/hosting/start-now_2880.png 2880w" sizes="64px" loading="lazy" > </picture> </div> <div class="devsite-landing-row-item-body"> <h3 id="start-now-and-pay-as-you-go" data-text="Start now, and pay as you go" class="hide-from-toc no-link" tabindex="0"> Start now, and pay as you go </h3> <div class="devsite-landing-row-item-description-content"> <span>Get started with 10 GB of storage and up to 360 MB/day of data transfer, free of charge. Custom domain, global CDN, and SSL certificate included.</span> </div> <div class="devsite-landing-row-item-buttons"> <a href="https://firebase.google.com/pricing#hosting" class="button button-white " data-category="firebase-hosting" data-label="/products/hosting" data-action="firebase-learn-more-click" >Learn more</a> </div> </div> </div> </div> <div class="devsite-landing-row-item devsite-landing-row-item-no-media firebase-hosting-highlight" description-position="bottom" > <div class="devsite-landing-row-item-description" icon-position="top" > <div class="devsite-landing-row-item-icon-container" size="medium" > <picture> <img class="devsite-landing-row-item-icon" alt="" src="https://firebase.google.com/static/images/products/hosting/multiple-frameworks.png" srcset="https://firebase.google.com/static/images/products/hosting/multiple-frameworks_36.png 36w,https://firebase.google.com/static/images/products/hosting/multiple-frameworks_48.png 48w,https://firebase.google.com/static/images/products/hosting/multiple-frameworks_72.png 72w,https://firebase.google.com/static/images/products/hosting/multiple-frameworks_96.png 96w,https://firebase.google.com/static/images/products/hosting/multiple-frameworks_480.png 480w,https://firebase.google.com/static/images/products/hosting/multiple-frameworks_720.png 720w,https://firebase.google.com/static/images/products/hosting/multiple-frameworks_856.png 856w,https://firebase.google.com/static/images/products/hosting/multiple-frameworks_960.png 960w,https://firebase.google.com/static/images/products/hosting/multiple-frameworks_1440.png 1440w,https://firebase.google.com/static/images/products/hosting/multiple-frameworks_1920.png 1920w,https://firebase.google.com/static/images/products/hosting/multiple-frameworks_2880.png 2880w" sizes="64px" loading="lazy" > </picture> </div> <div class="devsite-landing-row-item-body"> <h3 id="multiple-frameworks-one-command" data-text="Multiple frameworks, one command" class="hide-from-toc no-link" tabindex="0"> Multiple frameworks, one command </h3> <div class="devsite-landing-row-item-description-content"> <span>Build static websites with popular frameworks like React, Vite, Vue and more. Deploy with a single command using the Firebase CLI: firebase deploy.</span> </div> <div class="devsite-landing-row-item-buttons"> <a href="https://firebase.google.com/docs/hosting" class="button button-white " data-category="firebase-hosting" data-action="firebase-learn-more-click" data-label="/products/hosting" >Learn more</a> </div> </div> </div> </div> <div class="devsite-landing-row-item devsite-landing-row-item-no-media firebase-hosting-highlight" description-position="bottom" > <div class="devsite-landing-row-item-description" icon-position="top" > <div class="devsite-landing-row-item-icon-container" size="medium" > <picture> <img class="devsite-landing-row-item-icon" alt="" src="https://firebase.google.com/static/images/products/hosting/part-of-firebase.png" srcset="https://firebase.google.com/static/images/products/hosting/part-of-firebase_36.png 36w,https://firebase.google.com/static/images/products/hosting/part-of-firebase_48.png 48w,https://firebase.google.com/static/images/products/hosting/part-of-firebase_72.png 72w,https://firebase.google.com/static/images/products/hosting/part-of-firebase_96.png 96w,https://firebase.google.com/static/images/products/hosting/part-of-firebase_480.png 480w,https://firebase.google.com/static/images/products/hosting/part-of-firebase_720.png 720w,https://firebase.google.com/static/images/products/hosting/part-of-firebase_856.png 856w,https://firebase.google.com/static/images/products/hosting/part-of-firebase_960.png 960w,https://firebase.google.com/static/images/products/hosting/part-of-firebase_1440.png 1440w,https://firebase.google.com/static/images/products/hosting/part-of-firebase_1920.png 1920w,https://firebase.google.com/static/images/products/hosting/part-of-firebase_2880.png 2880w" sizes="64px" loading="lazy" > </picture> </div> <div class="devsite-landing-row-item-body"> <h3 id="part-of-the-firebase-platform" data-text="Part of the Firebase platform" class="hide-from-toc no-link" tabindex="0"> Part of the Firebase platform </h3> <div class="devsite-landing-row-item-description-content"> <span>Combine Firebase products to help you build and run apps and games users love. Effortlessly scale with user authentication, Cloud Messaging, and more.</span> </div> <div class="devsite-landing-row-item-buttons"> <a href="https://firebase.google.com/" class="button button-white " data-action="firebase-learn-more-click" data-category="firebase-hosting" data-label="/products/hosting" >Learn more</a> </div> </div> </div> </div> </div> </div> </section> <section class="devsite-landing-row devsite-landing-row-3-up devsite-landing-row-no-image-background firebase-hosting-learn-row" header-position="top" > <div class="devsite-landing-row-inner"> <header class="devsite-landing-row-header" > <div class="devsite-landing-row-header-text"> <h2 id="learn-to-do-more-with-hosting" data-text="Learn to do more with Hosting" tabindex="0"> Learn to do more with Hosting </h2> </div> </header> <div class="devsite-landing-row-group"> <div class="devsite-landing-row-item firebase-hosting-learn" description-position="bottom" > <div class="devsite-landing-row-item-media "> <figure class="devsite-landing-row-item-image"> <a href="https://firebase.google.com/docs/hosting/web-request-logs-and-metrics"> <picture> <source class="devsite-dark-theme" srcset="https://firebase.google.com/static/images/products/hosting/analytics-dark_36.png 36w,https://firebase.google.com/static/images/products/hosting/analytics-dark_48.png 48w,https://firebase.google.com/static/images/products/hosting/analytics-dark_72.png 72w,https://firebase.google.com/static/images/products/hosting/analytics-dark_96.png 96w,https://firebase.google.com/static/images/products/hosting/analytics-dark_480.png 480w,https://firebase.google.com/static/images/products/hosting/analytics-dark_720.png 720w,https://firebase.google.com/static/images/products/hosting/analytics-dark_856.png 856w,https://firebase.google.com/static/images/products/hosting/analytics-dark_960.png 960w,https://firebase.google.com/static/images/products/hosting/analytics-dark_1440.png 1440w,https://firebase.google.com/static/images/products/hosting/analytics-dark_1920.png 1920w,https://firebase.google.com/static/images/products/hosting/analytics-dark_2880.png 2880w" media="(prefers-color-scheme: dark)" alt="" sizes="(max-width: 840px) 50vw, 464px" loading="lazy" > <img alt="" src="https://firebase.google.com/static/images/products/hosting/analytics-light.png" srcset="https://firebase.google.com/static/images/products/hosting/analytics-light_36.png 36w,https://firebase.google.com/static/images/products/hosting/analytics-light_48.png 48w,https://firebase.google.com/static/images/products/hosting/analytics-light_72.png 72w,https://firebase.google.com/static/images/products/hosting/analytics-light_96.png 96w,https://firebase.google.com/static/images/products/hosting/analytics-light_480.png 480w,https://firebase.google.com/static/images/products/hosting/analytics-light_720.png 720w,https://firebase.google.com/static/images/products/hosting/analytics-light_856.png 856w,https://firebase.google.com/static/images/products/hosting/analytics-light_960.png 960w,https://firebase.google.com/static/images/products/hosting/analytics-light_1440.png 1440w,https://firebase.google.com/static/images/products/hosting/analytics-light_1920.png 1920w,https://firebase.google.com/static/images/products/hosting/analytics-light_2880.png 2880w" sizes="(max-width: 840px) 50vw, 464px" loading="lazy" > </picture> </a> </figure> </div> <div class="devsite-landing-row-item-description" > <div class="devsite-landing-row-item-body"> <h3 id="server-side-analytics-with-cloud-logging" data-text="Server-side analytics with Cloud Logging" class="hide-from-toc no-link" tabindex="0"> <a href="https://firebase.google.com/docs/hosting/web-request-logs-and-metrics"> Server-side analytics with Cloud Logging </a> </h3> <div class="devsite-landing-row-item-description-content"> <span>Know your visitors, your site's response statuses, the latency of end user requests, and more.</span> </div> </div> </div> </div> <div class="devsite-landing-row-item firebase-hosting-learn" description-position="bottom" > <div class="devsite-landing-row-item-media "> <figure class="devsite-landing-row-item-image"> <a href="https://firebase.google.com/docs/hosting/github-integration"> <picture> <source class="devsite-dark-theme" srcset="https://firebase.google.com/static/images/products/hosting/compression-dark_36.png 36w,https://firebase.google.com/static/images/products/hosting/compression-dark_48.png 48w,https://firebase.google.com/static/images/products/hosting/compression-dark_72.png 72w,https://firebase.google.com/static/images/products/hosting/compression-dark_96.png 96w,https://firebase.google.com/static/images/products/hosting/compression-dark_480.png 480w,https://firebase.google.com/static/images/products/hosting/compression-dark_720.png 720w,https://firebase.google.com/static/images/products/hosting/compression-dark_856.png 856w,https://firebase.google.com/static/images/products/hosting/compression-dark_960.png 960w,https://firebase.google.com/static/images/products/hosting/compression-dark_1440.png 1440w,https://firebase.google.com/static/images/products/hosting/compression-dark_1920.png 1920w,https://firebase.google.com/static/images/products/hosting/compression-dark_2880.png 2880w" media="(prefers-color-scheme: dark)" alt="" sizes="(max-width: 840px) 50vw, 464px" loading="lazy" > <img alt="" src="https://firebase.google.com/static/images/products/hosting/compression-light.png" srcset="https://firebase.google.com/static/images/products/hosting/compression-light_36.png 36w,https://firebase.google.com/static/images/products/hosting/compression-light_48.png 48w,https://firebase.google.com/static/images/products/hosting/compression-light_72.png 72w,https://firebase.google.com/static/images/products/hosting/compression-light_96.png 96w,https://firebase.google.com/static/images/products/hosting/compression-light_480.png 480w,https://firebase.google.com/static/images/products/hosting/compression-light_720.png 720w,https://firebase.google.com/static/images/products/hosting/compression-light_856.png 856w,https://firebase.google.com/static/images/products/hosting/compression-light_960.png 960w,https://firebase.google.com/static/images/products/hosting/compression-light_1440.png 1440w,https://firebase.google.com/static/images/products/hosting/compression-light_1920.png 1920w,https://firebase.google.com/static/images/products/hosting/compression-light_2880.png 2880w" sizes="(max-width: 840px) 50vw, 464px" loading="lazy" > </picture> </a> </figure> </div> <div class="devsite-landing-row-item-description" > <div class="devsite-landing-row-item-body"> <h3 id="smooth-deployment-with-github" data-text="Smooth deployment with Github" class="hide-from-toc no-link" tabindex="0"> <a href="https://firebase.google.com/docs/hosting/github-integration"> Smooth deployment with Github </a> </h3> <div class="devsite-landing-row-item-description-content"> <span>Github Actions integration to give you auto-deploy on push.</span> </div> </div> </div> </div> <div class="devsite-landing-row-item firebase-hosting-learn" description-position="bottom" > <div class="devsite-landing-row-item-media "> <figure class="devsite-landing-row-item-image"> <a href="https://firebase.google.com/docs/hosting/i18n-rewrites"> <picture> <source class="devsite-dark-theme" srcset="https://firebase.google.com/static/images/products/hosting/internalization-dark_36.png 36w,https://firebase.google.com/static/images/products/hosting/internalization-dark_48.png 48w,https://firebase.google.com/static/images/products/hosting/internalization-dark_72.png 72w,https://firebase.google.com/static/images/products/hosting/internalization-dark_96.png 96w,https://firebase.google.com/static/images/products/hosting/internalization-dark_480.png 480w,https://firebase.google.com/static/images/products/hosting/internalization-dark_720.png 720w,https://firebase.google.com/static/images/products/hosting/internalization-dark_856.png 856w,https://firebase.google.com/static/images/products/hosting/internalization-dark_960.png 960w,https://firebase.google.com/static/images/products/hosting/internalization-dark_1440.png 1440w,https://firebase.google.com/static/images/products/hosting/internalization-dark_1920.png 1920w,https://firebase.google.com/static/images/products/hosting/internalization-dark_2880.png 2880w" media="(prefers-color-scheme: dark)" alt="" sizes="(max-width: 840px) 50vw, 464px" loading="lazy" > <img alt="" src="https://firebase.google.com/static/images/products/hosting/internalization-light.png" srcset="https://firebase.google.com/static/images/products/hosting/internalization-light_36.png 36w,https://firebase.google.com/static/images/products/hosting/internalization-light_48.png 48w,https://firebase.google.com/static/images/products/hosting/internalization-light_72.png 72w,https://firebase.google.com/static/images/products/hosting/internalization-light_96.png 96w,https://firebase.google.com/static/images/products/hosting/internalization-light_480.png 480w,https://firebase.google.com/static/images/products/hosting/internalization-light_720.png 720w,https://firebase.google.com/static/images/products/hosting/internalization-light_856.png 856w,https://firebase.google.com/static/images/products/hosting/internalization-light_960.png 960w,https://firebase.google.com/static/images/products/hosting/internalization-light_1440.png 1440w,https://firebase.google.com/static/images/products/hosting/internalization-light_1920.png 1920w,https://firebase.google.com/static/images/products/hosting/internalization-light_2880.png 2880w" sizes="(max-width: 840px) 50vw, 464px" loading="lazy" > </picture> </a> </figure> </div> <div class="devsite-landing-row-item-description" > <div class="devsite-landing-row-item-body"> <h3 id="easier-internationalization" data-text="Easier internationalization" class="hide-from-toc no-link" tabindex="0"> <a href="https://firebase.google.com/docs/hosting/i18n-rewrites"> Easier internationalization </a> </h3> <div class="devsite-landing-row-item-description-content"> <span>Serve country and language specific content, backed by the power of a global CDN.</span> </div> </div> </div> </div> </div> </div> </section> <section class="devsite-landing-row devsite-landing-row-1-up firebase-hosting-cta-row" header-position="top" > <div class="devsite-landing-row-inner"> <div class="devsite-landing-row-html"> <img src="/static/images/products/hosting/firebase-logo-icon.svg"> <h3 id="try-firebase-for-free-today" data-text="Try Firebase for free today" tabindex="-1">Try Firebase for free today</h3> <span>Integrating it into your app is easy</span> </div> </div> </section> <section class="devsite-landing-row devsite-landing-row-1-up devsite-landing-row-item-centered devsite-landing-row-100 firebase-hosting-cta-button-row" 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"> <div class="devsite-landing-row-item-buttons"> <a href="https://firebase.google.com/docs/hosting/quickstart" class="button button-primary firebase-hosting-button " data-label="Get started" data-category="Firebase Hosting CTA" >Get started</a> </div> </div> </div> </div> </div> </div> </section> </div> <div class="devsite-floating-action-buttons"> </div> </article> <devsite-notification > </devsite-notification> <div class="devsite-content-data"> <template class="devsite-thumb-rating-feedback"> <devsite-feedback position="thumb-rating" project-name="Firebase" product-id="719752" bucket="" context="" version="t-devsite-webserver-20241114-r00-rc02.464922260396498922" data-label="Send Feedback Button" track-type="feedback" track-name="sendFeedbackLink" track-metadata-position="thumb-rating" class="nocontent" project-feedback-url="https://firebase.google.com/support/contact/bugs-features/" project-icon="https://firebase.google.com/_static/firebase/images/icon.svg" project-support-url="https://firebase.google.com/support/" > <button> Need to tell us more? </button> </devsite-feedback> </template> <template class="devsite-content-data-template"> [[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],[],[],[]] </template> </div> </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="/docs/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" > Developer guides </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/docs/reference/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" > SDK & API reference </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/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="/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="//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="//firebase.blog" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" > Check out the blog </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//www.reddit.com/r/Firebase" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" > Find us on Reddit </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//x.com/Firebase" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" > Follow on X </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//www.youtube.com/user/Firebase" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" > Subscribe on YouTube </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/community/events" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)" > Attend an event </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="/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="//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="//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="//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="/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="/brand-guidelines/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 6)" > Brand guidelines </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/support/faq/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 7)" > 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://developers.google.com/" class="devsite-footer-sites-logo-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Google Developers Link"> <picture> <source srcset="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/firebase/images/lockup-google-for-developers-dark-theme.svg" media="(prefers-color-scheme: none)" class="devsite-dark-theme" loading="lazy" alt="Google Developers"> <img class="devsite-footer-sites-logo" src="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/firebase/images/lockup-google-for-developers.svg" loading="lazy" alt="Google Developers"> </picture> </a> <ul class="devsite-footer-sites-list"> <li class="devsite-footer-sites-item"> <a href="//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="//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="//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="//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="//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="/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="//policies.google.com/privacy" data-category="Site-Wide Custom Events" data-label="Footer Privacy link" > Privacy </a> </li> <li class="devsite-footer-utility-item glue-cookie-notification-bar-control"> <a class="devsite-footer-utility-link gc-analytics-event" href="#" data-category="Site-Wide Custom Events" data-label="Footer Manage cookies link" aria-hidden="true" > Manage cookies </a> </li> </ul> <devsite-language-selector> <ul role="presentation"> <li role="presentation"> <a role="menuitem" lang="en" >English</a> </li> <li role="presentation"> <a role="menuitem" lang="de" >Deutsch</a> </li> <li role="presentation"> <a role="menuitem" lang="es" >Español</a> </li> <li role="presentation"> <a role="menuitem" lang="es_419" >Español – América Latina</a> </li> <li role="presentation"> <a role="menuitem" lang="fr" >Français</a> </li> <li role="presentation"> <a role="menuitem" lang="id" >Indonesia</a> </li> <li role="presentation"> <a role="menuitem" lang="it" >Italiano</a> </li> <li role="presentation"> <a role="menuitem" lang="pl" >Polski</a> </li> <li role="presentation"> <a role="menuitem" lang="pt" >Português</a> </li> <li role="presentation"> <a role="menuitem" lang="pt_br" >Português – Brasil</a> </li> <li role="presentation"> <a role="menuitem" lang="vi" >Tiếng Việt</a> </li> <li role="presentation"> <a role="menuitem" lang="tr" >Türkçe</a> </li> <li role="presentation"> <a role="menuitem" lang="ru" >Русский</a> </li> <li role="presentation"> <a role="menuitem" lang="he" >עברית</a> </li> <li role="presentation"> <a role="menuitem" lang="ar" >العربيّة</a> </li> <li role="presentation"> <a role="menuitem" lang="fa" >فارسی</a> </li> <li role="presentation"> <a role="menuitem" lang="hi" >हिंदी</a> </li> <li role="presentation"> <a role="menuitem" lang="bn" >বাংলা</a> </li> <li role="presentation"> <a role="menuitem" lang="th" >ภาษาไทย</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_cn" >中文 – 简体</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_tw" >中文 – 繁體</a> </li> <li role="presentation"> <a role="menuitem" lang="ja" >日本語</a> </li> <li role="presentation"> <a role="menuitem" lang="ko" >한국어</a> </li> </ul> </devsite-language-selector> </nav> </div> </devsite-footer-utility> <devsite-panel></devsite-panel> <devsite-concierge data-info-panel data-ai-panel > </devsite-concierge> </section></section> <devsite-sitemask></devsite-sitemask> <devsite-snackbar></devsite-snackbar> <devsite-tooltip ></devsite-tooltip> <devsite-heading-link></devsite-heading-link> <devsite-analytics> <script type="application/json" analytics>[]</script> <script type="application/json" tag-management>{"at": "True", "ga4": [], "ga4p": [], "gtm": [{"id": "GTM-N84485", "purpose": 0}], "parameters": {"internalUser": "False", "language": {"machineTranslated": "False", "requested": "en", "served": "en"}, "pageType": "article", "projectName": "Firebase", "signedIn": "False", "tenant": "firebase", "recommendations": {"sourcePage": "", "sourceType": 0, "sourceRank": 0, "sourceIdenticalDescriptions": 0, "sourceTitleWords": 0, "sourceDescriptionWords": 0, "experiment": ""}, "experiment": {"ids": ""}}}</script> </devsite-analytics> <devsite-badger></devsite-badger> <firebase-gtm></firebase-gtm> <firebase-utm></firebase-utm> <script nonce="Dc4ladTSkMYkv2YIBBRdLL78tGzZUD"> (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://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/firebase/js/app_loader.js', '[4,"en",null,"/js/devsite_app_module.js","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/firebase","https://firebase-dot-devsite-v2-prod.appspot.com",1,null,["/_pwa/firebase/manifest.json","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/images/video-placeholder.svg","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/firebase/images/favicon.png","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/firebase/images/lockup.svg","https://fonts.googleapis.com/css?family=Google+Sans:400,500|Roboto:400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700&display=swap"],1,null,[1,6,8,12,14,17,21,25,50,52,63,70,75,76,80,87,91,92,93,97,98,100,101,102,103,104,105,107,108,109,110,112,113,116,117,118,120,122,124,125,126,127,129,130,131,132,133,134,135,136,138,140,141,147,148,149,151,152,156,157,158,159,161,163,164,168,169,170,179,180,182,183,186,191,193,196],"AIzaSyAP-jjEJBzmIyKR4F-3XITp8yM9T1gEEI8","AIzaSyB6xiKGDR5O3Ak2okS4rLkauxGUG7XP0hg","firebase.google.com","AIzaSyAQk0fBONSGUqCNznf6Krs82Ap1-NV6J4o","AIzaSyCCxcqdrZ_7QMeLCRY20bh_SXdAYqy70KY",null,null,null,["MiscFeatureFlags__enable_dark_theme","Significatio__enable_by_tenant","Analytics__enable_clearcut_logging","MiscFeatureFlags__developers_footer_image","Cloud__enable_cloudx_experiment_ids","MiscFeatureFlags__enable_project_variables","Search__enable_suggestions_from_borg","Experiments__reqs_query_experiments","Profiles__enable_profile_collections","MiscFeatureFlags__enable_variable_operator","Cloud__enable_llm_concierge_chat","CloudShell__cloud_code_overflow_menu","DevPro__enable_developer_subscriptions","CloudShell__cloud_shell_button","MiscFeatureFlags__enable_explain_this_code","Cloud__enable_cloud_shell_fte_user_flow","MiscFeatureFlags__emergency_css","Concierge__enable_concierge","Cloud__enable_cloud_facet_chat","Cloud__enable_cloudx_ping","MiscFeatureFlags__enable_view_transitions","MiscFeatureFlags__developers_footer_dark_image","Profiles__enable_release_notes_notifications","Cloud__enable_cloud_dlp_service","Profiles__enable_recognition_badges","Cloud__enable_cloud_shell","Profiles__enable_awarding_url","Search__enable_page_map","Search__enable_ai_search_summaries","Profiles__enable_public_developer_profiles","Concierge__enable_pushui","Profiles__enable_completecodelab_endpoint","DevPro__enable_cloud_innovators_plus","Search__enable_dynamic_content_confidential_banner","BookNav__enable_tenant_cache_key","Profiles__enable_complete_playlist_endpoint","Search__enable_ai_eligibility_checks","Profiles__enable_page_saving","Profiles__require_profile_eligibility_for_signin","MiscFeatureFlags__enable_firebase_utm","EngEduTelemetry__enable_engedu_telemetry","TpcFeatures__enable_required_headers","Profiles__enable_developer_profiles_callout","Cloud__enable_legacy_calculator_redirect","Cloud__enable_free_trial_server_call","TpcFeatures__enable_mirror_tenant_redirects","Profiles__enable_dashboard_curated_recommendations"],null,null,"AIzaSyBLEMok-5suZ67qRPzx0qUtbnLmyT_kCVE","https://developerscontentserving-pa.clients6.google.com","AIzaSyCM4QpTRSqP5qI4Dvjt4OAScIN8sOUlO-k","https://developerscontentsearch-pa.clients6.google.com",1,4,null,"https://developerprofiles-pa.clients6.google.com",[4,"firebase","Firebase","firebase.google.com",null,"firebase-dot-devsite-v2-prod.appspot.com",null,null,[1,1,null,null,null,null,null,null,null,null,null,[1],null,null,null,null,null,null,[1],[1,null,null,[1]],null,null,null,[1,null,1],[1,1,null,null,1]],null,[68,null,null,null,null,null,"/images/lockup.svg","/images/touchicon-180.png",null,null,null,1,1,1,null,null,null,null,null,null,null,2,null,null,null,"/images/lockup.svg",[]],[],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[6,1,20,22,23,29,37],null,[[],[1,1]],[[null,null,null,null,["UA-24532603-9"],["GTM-N84485"],null,null,null,null,[["UA-24532603-9",1]],[["GTM-N84485",1]],1],[[46,8],[17,1],[2,5],[36,4],[16,2]],null,1],null,4],null,"pk_live_5170syrHvgGVmSx9sBrnWtA5luvk9BwnVcvIi7HizpwauFG96WedXsuXh790rtij9AmGllqPtMLfhe2RSwD6Pn38V00uBCydV4m"]') </script> <devsite-a11y-announce></devsite-a11y-announce> </body> </html>