Connect a custom domain

You don't have to give up your unique, brand-centric domain names for apps deployed on Firebase App Hosting. You can use a custom domain (like example.com or app.example.com) instead of a Firebase-generated domain for your Firebase-hosted site. Firebase App Hosting provisions an SSL certificate for each of your domains.

The rest of this document walks you through the steps to connect your custom domain.

Set up your domain for App Hosting

Make sure that you've completed the basic App Hosting setup tasks so that you have a Firebase App Hosting site in your Firebase project.

Step 1: Add custom domain

  1. Open your project's App Hosting page.
  2. Select an App Hosting backend using the View Dashboard option.
  3. Select the Settings tab, then click Add custom domain.
  4. Enter the custom domain name that you'd like to connect to your App Hosting site.
  5. (Optional) Check the box to redirect all requests on the custom domain to a second specified domain (such that example.com and www.example.com redirect to the same content).
  6. Click Continue to configure your DNS records and finish setting up your custom domain.

Step 2: Set up custom domain

  1. The Add Custom Domain wizard of the Firebase console will show the necessary records that need to be updated to point your page to Firebase App Hosting. Add, remove, and save records from your domain in your DNS provider with the following inputs:

    • Type: Add the provided DNS record.
    • Host: Enter your custom domain key for the records. The host you indicate is the domain on which you want to serve content; this domain can be an apex domain or subdomain. Your domain provider may list this term as "Host Name", "Name", or "Domain".

    • Value: Assign the provided value to your records. Your domain provider may list this term as "Data", "Points To", "Content", "Address", or "IP Address". The content of the value field varies by record type, with A and AAAA records having IP addresses as values while TXT records are strings.

Allow time for your SSL certificate to be provisioned. This typically takes a few hours, but can occasionally require up to 24 hours after you point your DNS to Firebase App Hosting. In most cases, propagation of your records and provisioning of your SSL certificate will happen within an hour, depending on your domain provider.

Wait for SSL certificate provisioning

App Hosting can take up to a few hours to provision an SSL certificate for your domain after you update your DNS records. In some cases, it could require up to 24 hours after you point your DNS to Firebase App Hosting.

You can view this certificate using the browser's security tools. While the domain is provisioning, you might see an invalid certificate or have issues connecting to your domain. This is a normal part of the process and will resolve after your domain's certificate is available.

Note: Firebase App Hosting automatically reprovisions SSL certs, as needed, for custom domains.

DNS record types

The App Hosting Custom Domain wizard could ask you to add 1 to 5 DNS records, depending on your domain's current configuration. A record's Type determines its function. These are the types of records App Hosting might ask for:

Type Description Exclusive
A These records contain IPv4 values (e.g. 8.8.8.8), which tell browsers what address to use when attempting to contact your domain. Yes
AAAA These records contain IPv6 values (e.g. 2001:4860:4860::8888), a different type of address record with roughly the same function as A records. App Hosting doesn't currently use AAAA records, but will ask you to remove any existing ones from our domain, if present. Yes
CNAME These records contain a separate domain name that should be used instead of your current domain to resolve DNS queries. CNAME records are only allowed on subdomains (e.g. www.example.com). App Hosting uses CNAME records for two reasons:
  • Easy onboarding: When possible, App Hosting asks you to CNAME to a preconfigured domain that starts with _custom-domain....
  • SSL certificate verification: App Hosting uses Cloud Ceritificate Manager to provision SSL certs for your Custom Domain. A CNAME record on an _acme-challenge... subdomain allows Certificate Manager to create and renew certificates for you. After onboarding, this record must not be removed or your certificate coverage will lapse.
Yes
TXT These records allow you to attach arbitrary metadata to your domain. App Hosting allows you to use a specific format of TXT record, fah-claim=[UUID], to indicate which Custom Domain it should serve on your domain. No
CAA These records function as an allowlist for specifying Certificate Authorities that are authorized to mint SSL certificates for your domain. App Hosting only requests CAA records if it's otherwise blocked from minting certificates for your domain. No

Your custom domain key

When adding or editing DNS records, different domain providers expect you to enter different inputs for the Host field within their DNS management sites. We've compiled common inputs from popular providers below. Refer to your domain provider's documentation for detailed instructions.

Domain type Custom domain key
Apex domain

Common inputs include:

  • @
  • The apex domain name (for example, example.com)
  • Leaving the Host field blank
Subdomain

Common inputs include:

  • The full subdomain name (for example, app.example.com)
  • Only the subdomain portion (for example, app only, and leaving out .example.com)

Common domain providers

Here are some common domain providers and the types of input each might require. This information is kept up-to-date as much as possible, but refer to your domain provider's documentation for detailed instructions.

Status descriptions for custom domains

Status Description
Needs setup

You may need to change a configuration with your DNS records.

  • In most cases, your DNS A records haven't propagated from your domain name provider to Firebase App Hosting servers.
    Troubleshooting tip: If it's been more than 24 hours, check that you've pointed your records to Firebase App Hosting.

  • In rarer cases, SSL challenges might be failing because your DNS records have A records or CNAME records that point to other hosting providers.
    Troubleshooting tip: Check that your A records point only to Firebase App Hosting, and remove all CNAME records.

Pending

You correctly set up your custom domain, but Firebase App Hosting hasn't provisioned an SSL certificate.

Occasionally, excessively restrictive CAA records can stall the minting of an SSL certificate for a custom domain. Ensure that the certificate authorities `letsencrypt.org` and `pki.goog` are allowed to create SSL certs for your domain.

Minting Certificate

An SSL certificate is being produced for your domain.

Connected

Your custom domain has the proper DNS records and has an SSL certificate.
You can serve your site's content.