下記のonCallを使ったFunctionを使っています。これだとCORS等の設定は全く気にしないで出来てた気がするのですが、何故か下記のようなエラーが出てしまいます。
エラー
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のリージョン変更方法
サーバ側(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 に配置する必要があります。
メモメモ