問題

私には次のものがあります:

 export const helloWorld = functions.https.onRequest((request, response) => {
    response.send(request.body);
});
 

私はそれをローカルで実行し、helloWorld("Hey")を実行しました。これは出力でした:

 firebase > helloWorld('HEY')
Sent request to function.
firebase > info: User function triggered, starting execution
info: Execution took 1 ms, user function completed successfully

RESPONSE RECEIVED FROM FUNCTION: 200, "{}"
 

明らかに文字列を送信したときに{}しか出力されないのはなぜですか?

  ベストアンサー

これは、ローカルでHTTPタイプ関数を呼び出す方法ではありません。 のドキュメントを確認し、そこに設定されたパターンを使用する必要があります。ノードリクエストモジュールを使用しているかのようにメソッドを呼び出します。

シェルでHTTPS関数を呼び出すには、 NPMモジュールを要求しますが、リクエストを関数名に置き換えます あなたはエミュレートしたい。例えば:

 # invoke
myHttpsFunction()
myHttpsFunction.get()
myHttpsFunction.post()

# invoke at sub-path
myHttpsFunction('/path')
myHttpsFunction.get('/path')
myHttpsFunction.post('/path')

# send POST request with form data
myHttpsFunction.post('/path').form( {foo: 'bar' })
 

コンテンツ本体全体を指定できるかどうかはわかりません。これは、通常、クエリ文字列またはフォームエンコードされた本体を介してHTTP関数にパラメータを渡すため、珍しいケースのようです。

  同じタグがついた質問を見る

google-cloud-functionsfirebase-cli