Firebase Cloud Functions で不正な JSON を処理するにはどうすればいいですか? 質問する

Firebase Cloud Functions で不正な JSON を処理するにはどうすればいいですか? 質問する

firebase-cloud-functions を使用する firebase アプリケーションを作成しています。

インデックス

exports.auth = functions.https.onRequest((request, response) => {
  response.status(200).send({
    status : "Some Status"
  });
}

POSTこれは非常に単純な関数です。エンドポイントにペイロードをリクエストしたいのですが、 Firebase Cloud Function EmulatorとPOSTmanを使用してAPIをテストしたところ、bad json

{
    "phoneNumber: "9632725300"
}

サーバーがクラッシュしました。私の質問は、このような Firebase 関数で不正なリクエストをどのように処理するかということです。

このエラーでここに画像の説明を入力してください

ベストアンサー1

サーバーはクラッシュしませんでした。不正なリクエスト (不正な JSON) が送信され、サーバーは「不正なリクエスト」を示すステータス コード 400 で正常に応答しました。

JSON を修正したほうがよいでしょう...

編集:

無効な JSON を送信できるようにしたい場合は、JSON ボディ パーサーを回避できます。これを行うには、リクエストを変更してコンテンツ タイプ ヘッダーを "text/plain" に設定します。このコンテンツ タイプはテキスト ボディ パーサーを使用し、JSON を解析しません。

ただし、これを行うには JSON 解析を自分で処理する必要がありますが、try-catch を使用してエラーを自分で処理できるようになります。

let json;
try {
    json = JSON.parse(json);
} catch (e) {
    // Handle JSON error.
}

出典https://firebase.google.com/docs/functions/http-events

おすすめ記事