47
votes

I am trying to set custom domain for my firebase app

Firebase hosted url : https://inventory-app-726af.firebaseapp.com/ Custom Domain: inv.agsft.com

I have followed all instructions as part of setting custom domain but after verification step when I click on finish button, status will always be "Needs Setup".

I am managing DNS through cloudflare (https://www.cloudflare.com/) and I am following Quick setup option.

Any pointers to resolve it?

Many Thanks Pari

11
When I run dig -t txt +noall +answer inv.agsft.com there are no TXT records showing. Since those are required to verify your ownership of the domain, Firebase Hosting will not continue the setup beyond step one. Aside from that: there's not enough information here for anyone on Stack Overflow to help. If you want personalized help, reach out to Firebase support.Frank van Puffelen
Thanks. I have corrected TXT record. dig -t txt +noall +answer inv.agsft.com inv.agsft.com. 299 IN TXT "google-site-verification=8uObmfAMZrc29piBvbJnRmyKNhONB3Iom6-qMOT9gHk"Pari
I am trying Advance Setup option, need to wait for 24 hr and I will update details.Pari
It seems there is something else, I have contacted firebase support and I have not yet received resolution. I will update post with answer after resolution.Pari
What's the update Pari?damingzi

11 Answers

49
votes

I had the same problem, I was able to resolve it by toggling the DNS Status on cloudflare from DNS and HTTP Proxy (CDN) to just DNS on the two A records

enter image description here

It started working right away. Hope that helps!

26
votes

The proper solution, ie without disabling Cloudflare for the site, is to use Full SSL for your domain/subdomain.

You can either choose Full SSL for all your domain entries, or set up a Page Rule for a specific subdomain, in your case, use "inv.agsft.com/*"

Source: https://community.cloudflare.com/t/flexible-ssl-redirect-loop-with-google-firebase/2063/3, which in turn points to https://support.cloudflare.com/hc/en-us/articles/115000219871-Why-does-Flexible-SSL-cause-a-redirect-loop-

Had the same issue and this solved the redirect issue. Firebase will however still report the domain as "Needs setup", for that I have no solution, but it does not affect the functionality of the hosting.

18
votes

For the people that is using Namecheap, This configuration worked for me.

Namecheap configuration

8
votes

To avoid any kind of ssl issues when using firebase hosting and cloudflare you have to check to following points:

  1. You don't need to toggling the DNS Status on cloudflare from DNS and HTTP Proxy (CDN) to just DNS on the two A records unless you don't want the cloudflare ssl certificates and want to just use the firebase ssl certificates (look to this carefully because you will loose the protection that cloudflare provides to your site in case you decide to use only the clouflare DNS)

enter image description here

If you "keep the cloud orange" it will not causes any problem to your firebase hosting.

  1. Add the firebase IP's to cloudflare following the instructions provided by firebase hosting and remove any other A record from your domain/subdomain that you are setting up

  2. To ensure you have a end-to-end encryption (using both firebase ssl as well as cloudflare ssl), make sure that your cloudflare crypto options is set to "Full":

enter image description here

  1. Use a page rule likes in case that you want your root domain to receive all trafic:

enter image description here

  1. In your firebase hosting setup, do the same: enter image description here

p.s: Look that the message "Needs setup" is still there but the app is running without any problem.

p.s2: the majority problems regarding cloudflare and firebase is that firebase ssl can take several hours to start to work and you keep seeing a message like "your connection is not private". It happens not beucase cloudflare is messing our proxy out but because firebase ssl is still not fully propagated.

I hope it help others :)

4
votes

In my case I did the same that Brennen did:

  • toggling the DNS Status on cloudflare from DNS and HTTP Proxy (CDN) to just DNS on the two A records.

But just start working when I:

  • Delete the domain from firebase. (click on the : points select delete domain)
  • refresh the firebase site
  • Added again in Quick Setup. I already had the A record added in Cloudflare so I didn't added again.

After that automatically the status added was connected.

Remember: Before testing, clean your browser cache.

3
votes

When I run dig -t txt +noall +answer inv.agsft.com there are no TXT records showing. Since those are required to verify your ownership of the domain, Firebase Hosting will not continue the setup beyond step one.

Update: since the next step requires you to map A records to the IP addresses of Firebase hosting, I ran the relevant dig too:

$ dig -t a +noall +answer inv.agsft.com
inv.agsft.com.      299 IN  A   104.18.56.240
inv.agsft.com.      299 IN  A   104.18.57.240

Those are not the addresses I'd expect for Firebase Hosting, so it looks like either you haven't correctly entered the A records, or they have't propagated yet.

3
votes

When I change my setting like below, it started to work again. Redirect loop fixed:

enter image description here

3
votes

For GoDaddy this adding the following solved it for me:

TYPE:A

NAME:@

VALUE: your ip_1

TYPE:A

NAME:@

VALUE: your ip_2

1
votes

June 2020

Just wanted to share what was successful for me. It was a combination Brennen and Lisbel's answer.

Step 1: Toggle off your DNS status to get a grey cloud (as shown in the earlier answer)

Step 2: Delete the domain from firebase

Step 3: Add it back with Quick Steup

It should be connected after these steps!

0
votes

I had the same issue. Here's how I fixed it:

1) Cick the View button on the problematic domain (in the Hosting section next to where it says Needs Setup).

2) Change the 'Setup mode' from Quick Setup to Advanced and follow the 3 steps

  • 2a) Open your domain provider's settings (I'm using Google Domains) and add the TXT record it's giving you.
  • 2b) Wait about 4-12 hours for verification
  • 2c) Add the provided A records into your domain provider's settings

This is not a quick process, but it should be working about 5 minutes after you complete step 2c.

0
votes

Toggling DNS mode didn't work for me. So I tried following approach and it worked for me.

  1. Add CNAME record pointing to {firebase-project}.firebaseapp.com or {firebase-project}.web.app, you could add A record and try.
  2. ADD TXT record as firebase ask you
  3. Verify from firebase (this will show as needs setup, also it didn't go away although this worked)
  4. If new domain/subdomain doesn't works check your browser developer tools network tab. If there are lots of 301 happening then go to cloudflare page rules. Add newdomain.com/* or subdomain.newdomain.com/* then add settings select SSL and set it to full as follows.

enter image description here

Then it will work as expected.