Use firebase cloud function to send POST request to non-google server

前端 未结 5 789
迷失自我
迷失自我 2020-11-27 03:52

I was wondering if its possible to use a firebase cloud function to send a post request to a non-google server (from what I can find I need to be on the blaze plan in order

相关标签:
5条回答
  • 2020-11-27 04:28

    axios is also one of the great library to handle network calls. Some features:

    • Make XMLHttpRequests from the browser
    • Make http requests from node.js
    • Supports the Promise API
    • Intercept request and response
    • Transform request and response data
    • Cancel requests
    • Automatic transforms for JSON data
    • Client side support for protecting against XSRF
    • 67k+ stars on github
    • github documentation for more
    0 讨论(0)
  • 2020-11-27 04:40

    You need to install the package. Go to Firebase-Funcions directory in Terminal and type

    npm install request
    

    OR

    npm install request-promise
    

    Use this example for test: https://www.npmjs.com/package/request

    0 讨论(0)
  • 2020-11-27 04:42

    For those of you who want to post with a JSON body this is how you can do it. (I know I needed this a while ago)

    export function postWithBodyToExternalUrl(url: string, bdy: any): Promise<ReqResponse> {
    
      const request = require('request');
    
      const options = {
        url: url,
        json: true
      };
      return new Promise(function (resolve, reject) {
        request(options, function (err, resp) {
          if (err) {
            console.log(err);
            reject({ err: err });
          }
          resolve(bdy);
        });
      });
    }
    
    0 讨论(0)
  • 2020-11-27 04:53

    This can be done using the request module:

    // import the module
    var request = require('request');
    
    // make the request
    request('put your external url here', function (error, response, body) {
        if (!error && response.statusCode == 200) {
            //here put what you want to do with the request
        }
    })
    

    NOTE: This will only work on paid plans. It is not possible to call non-google APIs using the free Spark plan as explained on the Firebase pricing page:

    The Spark plan allows outbound network requests only to Google-owned services. Inbound invocation requests are allowed within the quota. On the Blaze plan, Cloud Functions provides a perpetual free tier. The first 2,000,000 invocations, 400,000 GB-sec, 200,000 CPU-sec, and 5 GB of Internet egress traffic is provided for free each month. You are only charged on usage past this free allotment. Pricing is based on total number of invocations, and compute time. Compute time is variable based on the amount of memory and CPU provisioned for a function. Usage limits are also enforced through daily and 100s quotas. For more information, see Cloud Functions Pricing.

    0 讨论(0)
  • 2020-11-27 04:53

    Remember to install the module within the functions folder!

    cd functions
    npm i --save request
    
    0 讨论(0)
提交回复
热议问题