I've got a website hosted on firebase www.example.com. I'd like to serve some functions in the same project from api.example.com.
Rewrites seem to only support directories and not subdomains though. Has anyone been able to accomplish this? Do I have to just use two different firebase projects?
Rewrites won't handle domain names directly. As you say, you can use a second project, and route calls to your API via your custom domain using Firebase Hosting integration with Cloud Functions.
You can create multiple sites on the firebase console: Go to your project > hosting.
Create a new site on a subdomain of the domain you own i.e. api.example.com; (Confirm ownership for the domain etc.)
In your firebase.json
update your hosting
property to look something like this:
"hosting": [
{
"target": "mywebsite",
"public": "website",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
]
},
{
"target": "mywebsite-api",
"public": "apisite",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
],
"rewrites": [
{
"source": "/hello-world",
"function": "helloWorld",
"region": "firebase-region3" // This is optional if you do not use regions for your functions
}
]
}
],
Put index.html
and 404.html
files in the directory i.e. apisite
to avoid errors. If you want to publish documentation of your API publicly, this could be a good place to put it.
Deploy with:
firebase deploy --only hosting
now your function should be available on your subdomain i.e. https://api.example.com/hello-world
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With