2017-07-19 23 views
4

私は主要な機能を備えたメインfirebaseクラウド機能を持っています。しかし、私は主なクラウド機能上の機能を使用する、より具体的な別のものを作成する必要があります。 http Postをリクエストしたり、あるFirebaseクラウド機能から別のFirebaseクラウド機能に無料アカウントをリクエストすることはできますか?Firebaseクラウド機能別のfirebaseクラウド機能へのHTTPリクエスト

私はそれを作ろうとしましたが、「ENOTFOUND」というメッセージが表示されました。私のコードで何か問題があるかどうか、または無料アカウントの制限にすぎませんか?

index.js
'use strict'; 
const functions = require('firebase-functions'); 

const express = require('express'); 
const app = express(); 

app.post('/test', function(req, res) { 
    var request = require('request') 

    var options = { 
     method: 'post', 
     body: req.body, // re-send the incoming body to the main cloud function 
     json: true, 
     url: '<main cloud url>', 
     headers: req.headers // re-send the incoming headers the main cloud function 
    } 
    request(options, function (err, response, body) { 
     if (err || response.statusCode != 200) { 
     res.status(400).send(err); //re-send the received error to the client 
     return 
     } 
     res.send(body); //re-send the received response to the client 
    }); 
}); 

exports.checkAtivation = functions.https.onRequest(app); 
+2

コードを共有していただけますか? –

+0

コードを編集するには –

答えて

5

それは別のHTTPクラウド機能からHTTPクラウド機能を呼び出すためにスパーク計画に現時点ではできません。あなたはBlaze計画にアップグレードする必要があります。

ほとんどの場合、あるプロジェクトの機能がHTTP経由で他の機能を呼び出すことは意味がありません。ロジックを、すべてのエンドポイントが共有できる単一の関数またはモジュールに抽象化するだけであれば、プロジェクト内のすべてのコードをすべての関数間で共有できます。

+1

これはまさに正しいことです。別のHTTP呼び出しを行うのではなく、JavaScriptの内部コードを呼び出してみてください。ただし、BlazeプランにはSparkプランよりもさらに寛大な無料クォータがあるため、何も費用をかけずにアップグレードすることができます。 –

+0

@Doug - 関数をモジュールに抽象化する方法に関するチュートリアルはありますか? –

+0

私はちょうどそれを受け取っていないし、展開で1行のコードを変更するだけで、このエラーが発生しました。 (httpを介してfirebase関数を呼び出さなかった) –

関連する問題