Logicky Blog

Logickyの開発ブログです

Firebase Functions(onCall)でCORS関連でエラーになる

下記のonCallを使ったFunctionを使っています。これだとCORS等の設定は全く気にしないで出来てた気がするのですが、何故か下記のようなエラーが出てしまいます。

firebase.google.com

エラー

Access to fetch at 'https://us-central1-hoge-hoge.cloudfunctions.net/hoge' from origin 'http://localhost:8080' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: Redirect is not allowed for a preflight request.

結論

  • エラーの原因は、誤字。クライアント側の関数名が間違っていた。
  • エラーが上記なので、CORS的な設定不足だと思い込んで大分はまった。。
  • アホな間違いだけど、またはまりそうだから一応メモ。

エラーと関係ないメモ

Functionsのリージョン変更方法

firebase.google.com

サーバ側(Functions)

exports.userAdd = functions.region('asia-northeast1').https.onCall()

クライアント側

export const functions = firebase.app().functions('asia-northeast1')

関数内で Realtime Database、Firestore インスタンス、またはストレージ バケットとやり取りしている場合、それらのリソースのいずれかでトリガーされる関数があれば、推奨されるリージョンはそのリソースと同じリージョンです。それ以外の場合は、デフォルトのリージョン us-central1 を使用してください。Firebase Hosting に接続されている関数は us-central1 に配置する必要があります。

メモメモ