kako.dev

開発、自作アプリのこと

Firebase Functions で `Response is not valid JSON object.` が出てハマった

Firebase Functionsを使ってみたらResponse is not valid JSON object.という例外が発生してハマりました。

こういうFunctionをデプロイ

export const example = functions.region('asia-northeast1').https.onCall(async (data, context) => {
  try {
    return { message: "example" }
  } catch (e) {
    throw new functions.https.HttpsError("internal", e.message, e.details);
  }
});

渡しているデータも問題なさそうなのにうまいこと動きません。

エラーメッセージもResponse is not valid JSON object.と出て「なんで?」っていう感じ・・・

デフォルトのリージョンと異なるのが問題らしい

functions.region('asia-northeast1') でリージョンを指定しているのですが、これがデフォルトのリージョンと異なるため発生する問題のようです。

Firebaseのプロジェクト設定からデフォルトのリージョンを確認します。

確認したところ未指定だったため us-central が自動で適応されているようでした。

asia-northeast1を使いたいので変更して、無事Functionsが正常にレスポンスを返すようになりました。

参考

Cloud Functions のロケーション  |  Firebase