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 a custom domain in one of these ways:
To ensure uninterrupted service, your DNS records must be updated in a certain order. Follow the instructions to migrate a domain to prevent downtime for your app.
If downtime isn't a concern, such as when you are connecting a domain that is new to your web app, follow the instructions to connect a new domain.
Before you begin: DNS record types
The App Hosting Set up domain wizard could ask you to add or remove 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. | No |
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:
|
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 |
Before you begin: your custom domain name
When adding or editing DNS records, different domain providers expect you to enter different inputs for the Host (or host name) field within their DNS management sites. The App Hosting custom domain wizard requires you to input this same value in the Name field.
We've compiled common inputs from popular providers below. Refer to your domain provider's documentation for detailed instructions.
Domain type | Custom domain name |
---|---|
Apex domain |
Common inputs include:
|
Subdomain | Common inputs include:
|
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.
Cloudflare
Host | Input |
---|---|
example.com. | @ |
www.example.com. | www |
Google Cloud DNS
Host | Input |
---|---|
example.com. | .example.com. |
www.example.com. | www.example.com. |
NameCheap
Host | Input |
---|---|
example.com. | @ |
www.example.com. | www |
Squarespace
Host | Input |
---|---|
example.com. | @ |
www.example.com. | www |
Migrate a domain
If you want to ensure uninterrupted service without any downtime for your app, you must set up your DNS records in a certain order. After adding your domain, you'll first work through a process to verify your DNS records, and then you'll perform one more verification step to direct live requests to App Hosting.
Step 1: Add custom domain
- Open your project's App Hosting page.
- Select an App Hosting backend using the View Dashboard option.
- Select the Settings tab, then click Add custom domain.
- Enter the custom domain name that you'd like to connect to your App Hosting site.
- (Optional) Check the box to redirect all requests on the custom domain to
a second specified domain (such that
example.com
andwww.example.com
redirect to the same content). - Click Continue to setup to configure your DNS records and finish setting up your custom domain.
Step 2: Verify DNS records
- 1. The Migrate a 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 for the required records:
- Name: Enter your custom domain name 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"
- Record type: Add the provided DNS record.
- 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.
- Select Verify records. App Hosting will attempt to detect the changes you have main in your domain provider. It can take up to 24 hours for changes to propagate. You can check the status in the Settings > Domains view in the backend dashboard.
Step 3: Direct to App Hosting
- After App Hosting verifies the record updates, the
Direct to App Hosting dialog displays the final record you must
update to direct your domain to App Hosting. As before,
add, remove, and save records from your domain in your DNS provider
with the following inputs for the required records:
- Name: Enter your custom domain name 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"
- Record type: Add the provided DNS record.
- 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.
- Select Verify records. App Hosting will attempt to detect the changes you have main in your domain provider. It can take up to 24 hours for changes to propagate. You can check the status in the Settings > Domains view in the backend dashboard.
Connect a new Domain
If downtime isn't a concern, such as when you are connecting a domain that is new to your web app, follow the instructions in this section.
Step 1: Add custom domain
- Open your project's App Hosting page.
- Select an App Hosting backend using the View Dashboard option.
- Select the Settings tab, then click Add custom domain.
- Enter the custom domain name that you'd like to connect to your App Hosting site.
- (Optional) Check the box to redirect all requests on the custom domain to
a second specified domain (such that
example.com
andwww.example.com
redirect to the same content). - Click Continue to setup to configure your DNS records and finish setting up your custom domain.
Step 2: Verify DNS records
- The Set up 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:
- Name: Enter your custom domain name 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"
- Record type: Add the provided DNS record.
- 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.
- Select Verify records. App Hosting will attempt to detect the changes you have main in your domain provider. It can take up to 24 hours for changes to propagate. You can check the status in the Settings > Domains view in the backend dashboard.
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.
Status descriptions for custom domains
Status | Description |
---|---|
Needs setup |
You may need to change a configuration with your DNS 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. |