How to call Firebase Callable Functions with HTTP?

creativecreatorormaybenot picture creativecreatorormaybenot · Mar 25, 2018 · Viewed 9k times · Source

I realised that the new Callable Cloud Functions can still be called as if they were HTTP events, i.e. they can still be reached under http://us-central1-$projectname.cloudfunctions.net/$functionname. When doing that I receive an error message in my Cloud Functions Log:

Request has invalid method. GET 

This means that HTTP-GET does not work, but is there a way to call the functions? Maybe they are using HTTP-CONNECT.

Answer

bklimt picture bklimt · Mar 26, 2018

EDIT: The details of the protocol have been formally documented now.

HTTPS Callable functions must be called using the POST method, the Content-Type must be application/json or application/json; charset=utf-8, and the body must contain a field called data for the data to be passed to the method.

Example body:

{
    "data": {
        "aString": "some string",
        "anInt": 57,
        "aFloat": 1.23
    }
}

If you are calling a function by creating your own http request, you may find it more flexible to use a regular HTTPS function instead.