web-dev-qa-db-ja.com

firebaseクラウド機能を使用してPOSTリクエストをGoogle以外のサーバーに送信します

Firebaseクラウド機能を使用して、Google以外のサーバーに投稿リクエストを送信することが可能かどうか疑問に思っていました(Google以外のサーバーとやり取りするためには、ブレイズプランに参加する必要があります)

基本的に、データベースに値が追加されるたびに、arduinoで実行されている外部サーバーにPOSTしたいです。

私はドキュメントを調べて、クラウド機能がHTTPポストリクエスト(HTTPクラウド機能)に応答する例を見つけましたが、外部サーバーへのポストの例を見つけることができないようです。これは可能ですか?

35
Stone Preston

これは request モジュールを使用して実行できます。

// 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
    }
})

注:これは有料プランでのみ機能します。 Firebaseの価格設定ページ で説明されているように、無料のSparkプランを使用してGoogle以外のAPIを呼び出すことはできません。

Sparkプランは、Googleが所有するサービスへの送信ネットワークリクエストのみを許可します。インバウンド呼び出し要求は、クォータ内で許可されます。 Blazeプランでは、Cloud Functionsは永続的な無料利用枠を提供します。最初の2,000,000回の呼び出し、400,000 GB秒、200,000 CPU秒、および5 GBのインターネット出力トラフィックは、毎月無料で提供されます。この無料割り当てを過ぎた使用量に対してのみ課金されます。価格は、呼び出しの合計数と計算時間に基づいています。計算時間は、機能にプロビジョニングされたメモリとCPUの量に基づいて変化します。使用制限は、毎日および100のクォータを通じても実施されます。詳細については、「 クラウド機能の価格設定 」を参照してください。

48
stodi

パッケージをインストールする必要があります。ターミナルのFirebase-Funcionsディレクトリに移動し、入力します

npm install request

OR

npm install request-promise

テストには次の例を使用します。 https://www.npmjs.com/package/request

7
RodolfoNeto

Functionsフォルダー内にモジュールをインストールすることを忘れないでください!

cd functions
npm i --save request
2
Cesare