Firebase Hosting: Needs Setup For Cloudflare DNS
CloudflareFirebase HostingCloudflare Problem Overview
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?
Cloudflare Solutions
Solution 1 - Cloudflare
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
It started working right away. Hope that helps!
Solution 2 - Cloudflare
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.
Solution 3 - Cloudflare
Solution 4 - Cloudflare
To avoid any kind of ssl issues when using firebase hosting and cloudflare you have to check to following points:
- 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)
If you "keep the cloud orange" it will not causes any problem to your firebase hosting.
-
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
-
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":
- Use a page rule likes in case that you want your root domain to receive all trafic:
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 :)
Solution 5 - Cloudflare
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.
Solution 6 - Cloudflare
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.
Solution 7 - Cloudflare
Solution 8 - Cloudflare
For GoDaddy this adding the following solved it for me:
TYPE:A
NAME:@
VALUE: your ip_1
TYPE:A
NAME:@
VALUE: your ip_2
Solution 9 - Cloudflare
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!
Solution 10 - Cloudflare
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.
Solution 11 - Cloudflare
Toggling DNS mode didn't work for me. So I tried following approach and it worked for me.
- Add
CNAME
record pointing to{firebase-project}.firebaseapp.com
or{firebase-project}.web.app
, you could addA
record and try. - ADD
TXT
record as firebase ask you - Verify from firebase (this will show as needs setup, also it didn't go away although this worked)
- 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/*
orsubdomain.newdomain.com/*
then add settings select SSL and set it to full as follows.
Then it will work as expected.
Solution 12 - Cloudflare
Working as of 11st May 2022 without need to toggle DNS and HTTP Proxy (CDN).
Steps: