This page provides answers to frequently asked questions (FAQs) and
troubleshooting information about Firebase Hosting:

- [Deployed assets and storage](https://firebase.google.com/docs/hosting/faq-and-troubleshooting.md.txt#deployed-assets-and-storage)
- [Hosting sites](https://firebase.google.com/docs/hosting/faq-and-troubleshooting.md.txt#hosting-sites)
- [Changes for deferred creation of the default Hosting site](https://firebase.google.com/docs/hosting/faq-and-troubleshooting.md.txt#deferred-default-site)

<br />

*** ** * ** ***

## Deployed assets and storage

The following are answers to common questions about deploying files and managing
storage in Firebase Hosting.

### Hosting release history table in the Firebase console shows higher file counts than the local project

Firebase automatically adds extra files containing metadata about the
Hosting site, and these files are included in the total file count for the
release.

### Maximum file size allowed to deploy to Firebase Hosting

Hosting has a maximum size limit of 2 GB for
individual files.

We recommend storing large files using
[Cloud Storage for Firebase](https://firebase.google.com/docs/storage.md.txt), which offers a maximum size limit in
the terabyte range for individual objects.

<br />

### Cannot store executable files when project is on the Spark pricing plan

<br />

For no-cost (Spark) plan projects, Firebase blocks uploads and hosting of certain
executable file types for Windows, Android and Apple by Cloud Storage for Firebase and
Firebase Hosting. This policy exists to prevent abuse on our platform.


Serving, hosting and file uploads of disallowed files are blocked for all Spark projects created
on or after Sept 28th, 2023. For existing Spark projects with files uploaded before that date,
such files can still be uploaded and hosted.

This restriction applies to Spark plan projects. Projects on the pay as you go (Blaze) plan
are not affected.


The following file types cannot be hosted on Firebase Hosting and Cloud Storage for Firebase:

- Windows files with `.exe`, `.dll` and `.bat` extensions
- Android files with `.apk` extension
- Apple platform files with `.ipa` extension

**What do I need to do?**

If you still want to host these file types after September 28th, 2023:

- For Hosting: upgrade to the Blaze plan before you can deploy these file types to Firebase Hosting via the `firebase deploy` command.
- For Storage: upgrade to the Blaze plan to upload these file types to the bucket of your choice using the GCS CLI, the Firebase console, or Google Cloud console.

Use Firebase tools to manage your Firebase Hosting and Cloud Storage resources.

- For managing resources in Firebase Hosting, use the Firebase console to delete releases [according to this guide](https://firebase.google.com/docs/hosting/manage-hosting-resources.md.txt#delete-release).
- For managing resources in Cloud Storage, navigate to the [Storage
  product page](https://console.firebase.google.com/project/_/storage/) in your project.
  1. On the **Files** tab, locate disallowed files to delete in your folder hierarchy, then select them using the checkbox next to the filename(s) on the left-hand side of the panel.
  2. Click **Delete**, and confirm the files were deleted.

Please refer to our documentation for additional information on managing
[Hosting resources with Firebase tools](https://firebase.google.com/docs/hosting/manage-hosting-resources.md.txt) and
[Cloud Storage for Firebase
buckets with client libraries](https://firebase.google.com/docs/storage/admin/start#google-cloud-storage-client-libraries).

<br />

<br />

<br />

*** ** * ** ***

## Hosting sites

The following are answers to common questions about limits and management for
Firebase Hosting sites.

### Maximum Hosting sites per Firebase project

The [Firebase Hosting multisite feature](https://firebase.google.com/docs/hosting/multisites.md.txt) supports
a maximum of 36 sites per project.

<br />

*** ** * ** ***

## Changes for deferred creation of the default Hosting site

This section describes the changes for the deferred creation of a
Firebase project's default Firebase Hosting site. These changes take effect
starting October 15, 2026.

- The default Hosting site is ***not created*** when a new Firebase project
  is created or Firebase is added to an existing Google Cloud project.

- Firebase only creates the default Hosting site in the following scenarios:

  - *(Explicitly)* If the default Hosting site is explicitly created (for
    example, by calling the `projects.sites.create` endpoint).

  - *(Implicitly)* If an action taken on the Firebase project might require a
    default Hosting site (for example, by clicking through the
    Firebase Hosting get started flow in the Firebase console or enabling
    Firebase Authentication).

### Create the default Hosting site

After October 15, 2026, your default Hosting site can be created
either
[explicitly](https://firebase.google.com/docs/hosting/faq-and-troubleshooting.md.txt#explicitly-create) or [implicitly](https://firebase.google.com/docs/hosting/faq-and-troubleshooting.md.txt#implicitly-create).

**The first Hosting site created in your Firebase project always becomes
your default Hosting site.**

If your Firebase project does not yet have a default Hosting site and you do
any of the following ***for the first time*** in your Firebase project, a
default Hosting site will be created.

#### Explicitly create the default Hosting site

When you do any of the following, Firebase creates the default Hosting site
with the requested site ID:

- CLI: Run `firebase hosting:sites:create SITE_ID`
- REST: Call [`projects.sites.create`](https://firebase.google.com/docs/reference/hosting/rest/v1beta1/projects.sites/create.md.txt)

> [!IMPORTANT]
> **Important:** Whenever possible, try to create the default Hosting site ***before*** creating your Firebase Web App in your Firebase project. This order ensures that your Firebase configuration is populated with the `authDomain` value, which is by default the domain of your default Hosting site.

#### Implicitly create the default Hosting site

- When you do any of the following, Firebase asks you to create the default
  Hosting site yourself (or asks for a preferred site ID to create the site
  for you):

  - Console: Create a Firebase Web App using the Firebase console "add app" workflow
  - CLI: Run `firebase init hosting`
  - CLI: Run `firebase init` and select hosting
  - CLI: Run `firebase init auth`
  - CLI: Run `firebase init` and select authentication
  - CLI: Run `firebase deploy --only hosting`
  - CLI: Run `firebase deploy` with `hosting` configured in your `firebase.json`
  - CLI: Run `firebase apps:create web`
- When you do any of the following, Firebase *automatically* creates the default
  Hosting site for you in the background (and does *not* ask for a preferred
  site ID) for any of the following Firebase Authentication related scenarios:

  - Console: Enable Firebase Authentication
  - Enable the `identitytoolkit.googleapis.com` API via the gcloud CLI, REST, Terraform, etc.

> [!IMPORTANT]
> **Important:** Calling the [`projects.webApps.create` endpoint](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects.webApps/create.md.txt) does ***not*** create the default Hosting site and does ***not*** prompt you to create a default Hosting site. You need to separately create the default Hosting site (for example, by calling [`projects.sites.create`](https://firebase.google.com/docs/reference/hosting/rest/v1beta1/projects.sites/create.md.txt)). We strongly recommend that you **create the default Hosting site
> *before* creating the Firebase Web App**.

> [!WARNING]
> **Warning:** Be aware that if your project ID has not yet been used to create a site ID (either in your project or in a different project), then any project can create a site with that ID, including a project that you don't control ([learn more](https://firebase.google.com/docs/hosting/default-site.md.txt#not-using-project-id)). If you choose not to use your project ID as the site ID for your default Hosting site, then you might consider [creating an additional site](https://firebase.google.com/docs/hosting/multisites.md.txt) in your Firebase project that uses your project ID to ensure that your project ID is used by your project and not someone else's.

### Determine the site ID for the default Hosting site

After October 15, 2026, here's how the site ID for the default
Hosting site will be determined:

- If you create the default Hosting site yourself (or you're asked for a
  preferred site ID), then you can use any available site ID. We recommend
  trying to use your project ID.

- If Firebase *automatically* creates the default Hosting site for you
  without asking for a preferred site ID, then we'll try to use the project ID
  as the site ID. However, if that value is already taken, then we'll append 5
  random characters to the project ID.

  Note that this was the way that Firebase created the
  default Hosting site ID before October 15, 2026.

Learn more about the situation where
[your default Hosting site does not use your project ID](https://firebase.google.com/docs/hosting/default-site.md.txt#not-using-project-id).