Use custom domain for firebase function http calls

蹲街弑〆低调 提交于 2020-02-26 12:51:31

问题


Is there a way to use a custom domain for firebase cloud functions http hooks.

The default url for cloud functions looks something like this:

https://us-central1-my-awesome-app.cloudfunctions.net/ios-oauth/

And

I would like to make it look like this:

https://myawesomeapp.com/ios-oauth/

I looked around if there was some other people looking for the same solution and sure enough I found this:

https://stackoverflow.com/questions/43482224/firebase-cloud-functions-custom-domain


回答1:


I have contacted firebase support to get some answers about this. And I was forwarded to this part in the documentation.

https://firebase.google.com/docs/hosting/functions#create_an_http_function_to_your_hosting_site

You can use your own domain with the firebase-cloud-functions. The way to do is is using the firebase-hosting.

  1. Connect custom domain to firebase hosting
  2. Add custom function routing to firebase.json

    {
      "hosting": {
        "public": "public",
    
        // Add the following rewrites section *within* "hosting"
        "rewrites": [{
          "source": "/bigben", "function": "bigben"
        }]
    
      }
    }
    
  3. Deploy to firebase




回答2:


The accepted answer is correct, and I created this repository last year to demonstrate the functionality: https://github.com/cjmyles/firebase-react-express

In order to retain the HTML pushState functionality as per https://firebase.google.com/docs/hosting/full-config#rewrites you may want to extend the rules to allow all other requests through to your index.html page, which solves the issue @Boris was facing in his answer.

"rewrites": [
    {
        "source": "/api/**",
        "function": "app"
    },
    {
        "source": "!/@(api)/**",
        "destination": "/index.html"
    }
]

This shouldn't really be needed as the rewrite rules are meant to match the first occurence of a request (so the order matters), but this worked for me by allowing all non-api related requests through.

Please note: At the time of writing this the Firebase documentation states: Firebase Hosting supports Cloud Functions in us-central1 only.




回答3:


If anyone else runs into this, Thomas Bulva's answer is correct but for me, I also had to remove the below snippet from the firebase.json file. .

It was redirecting any request to the index.html page. My https://us---<>.cloudfunctions.net URL was working fine; when I did /helloWorld it would take me to "Hello from Firebase!" But if I tried the same from my custom domain, it would fail. Removing this fixed it.

{
   "source": "**",
   "destination": "/index.html"
},


来源:https://stackoverflow.com/questions/49825799/use-custom-domain-for-firebase-function-http-calls

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!