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が正常にレスポンスを返すようになりました。
参考