2017-09-22 9 views
0

firebaseクラウド関数を使用して外部json APIへのプロキシを作成しようとしています。しかし、今はすべてをセットアップしようとしています。Firebaseのすべてのクラウド機能がタイムアウトするのはなぜですか?

私は、この関数を書いた:

exports.helloWorld = functions.https.onRequest((request, response) => { 
    request.get('http://www.google.com', function (error, response, body) { 
    if (!error && response.statusCode == 200) { 
     console.log(body) // Print the google web page. 
    } 
    }) 
}); 

私はその後、firebase機能エミュレータを実行し、それは関数が実行を開始、トリガされたというメッセージを返しますが、それはただ座っ

curl http://localhost:5000/<project-id>/us-central1/helloWorld 

を実行します最終的にタイムアウトするまでスピンします。

{"error":{"code":500,"status":"INTERNAL","message":"function execution attempt timed out"}} 

私が間違っていることはわかりません。

........

EDITは

この機能は完璧に動作します:型の関数がに結果を書き込むことが義務づけられているHTTPSクラウド機能を持つ

exports.helloWorld = functions.https.onRequest((request, response) => { 
    response.send('test'); 
}) 

答えて

5

、クライアントは、機能が実行されたことを示すために使用します。結果が書き込まれるまで、関数はまだ何か非同期作業を実行していると見なされます。

リクエストが完了したら、空でも応答を送信する必要があります。あなたはおそらくそれらのいずれかの名前を変更する必要がありますので、残念ながら、あなたは、別のものにあなたの主なresponseオブジェクトを影にしました:あなたが応答に何かを送信するまで

exports.helloWorld = functions.https.onRequest((request, response) => { 
    request.get('http://www.google.com', function (error, res, body) { 
    if (!error && res.statusCode == 200) { 
     console.log(body) // Print the google web page. 
    } 
    return response.send("") // this terminates the function 
    }) 
}) 
+0

しかし、私:。ここに(私はシャドウイングを回避するために、変数の名前を変更しなければならなかっただけで、パイプ出力としてプロキシ要求からコンテンツの例です – reknirt

+0

私は送り返す前に戻ります - それは修正する必要があります –

+0

難しいと申し訳ありませんが、私はあなたの助けに感謝しています。しかし、それはまだタイムアウトしています。私はそれが別のシャドーイングの問題かもしれないと思ったが、私も同様のバリエーションを試してみた。私はまた、Googleと同じもの以外のURLを試してみた。 ? – reknirt

3

HTTPS機能が完了しません。私はコピー&ペースト、あなたの正確な機能をアウトそれはまだ時間

exports.helloWorld = functions.https.onRequest((req, res) => { 
    request.get('http://www.google.com', function (error, response, body) { 
    if (!error && response.statusCode == 200) { 
     return res.send(body) // Print the google web page. 
    } 
    return res.send('ERROR: ' + error.message); 
    }) 
}); 
関連する問題