Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I get the hosting url instead of functions url in firebase functions for https

I have dynamically generated urls that I need to create for staging and production environments. I am doing a mix of Firebase hosting and functions. I am also using Firebase config to route urls to my Firebase functions "app". When I try to get the hosting url when I visit my site with req.get('host') inside a Firebase function I get the functions url. How can I get the Hosting url? - the url that triggered the firebase function?

like image 289
Tim.Willis Avatar asked Jul 05 '18 15:07

Tim.Willis


People also ask

Can you host websites on Firebase?

Firebase Hosting is production-grade web content hosting for developers. With a single command, you can quickly deploy web apps and serve both static and dynamic content to a global CDN (content delivery network).


1 Answers

If you examine the contents of req.headers, you'll find some attributes of interest:

  • host: The host of Cloud Functions, e.g. "us-central1-YOUR-PROJECT.cloudfunctions.net:
  • x-forwarded-host: Your Firebase Hosting host, e.g. "YOUR-PROJECT.firebaseapp.com"
  • x-forwarded-proto: The protocol of the original request, e.g. "https"
  • x-original-url: The URL path of the original request, e.g. "/test"

Between three of those (the ones that start with "x-"), you could concatenate them together to get the original URL.

I don't know if these headers are fully documented and supported.

like image 70
Doug Stevenson Avatar answered Oct 19 '22 01:10

Doug Stevenson