Cloud Functionsのリージョン変更時にhttpsCallableで遭遇したCORSエラーについて
Cloud Functionsの処理において、コールドスタート対策としてFunctionsのリージョンを、特定の地理的なリージョンに設定することがあります。
以上のregionに変更するといいといった情報を読んで実際にリージョンを変更したのですが、意外なくらいにハマりました。
Cloud Functions側の処理を行っているリージョン変更に関しては注意が必要です。
asia-northeast1
Cloud Functionsでは以下のようにリージョンを変更しましょうとされていることが多いです。
import * as firebaseFunctions from 'firebase-functions'
const functions = firebaseFunctions.region('asia-northeast1')
しかし、このままではクライアント側から直接https.onCall()を使用してCloud Functionsの処理を呼び出す際に、以下のようなエラーが発生します。
「なるほど、これはCORS関連のエラーなのか...」とCORSエラーについての対策に焦点を当てると、おそらく解決策にたどり着くことはできません。
結論から言うと、このエラーを解消するためには、プロキシの設定やCORS関連のパッケージの導入、GCPの管理画面でのFunctionsの設定変更は関係ありません。
では、このエラーをどのように解決すればよいのでしょうか?
答え
上記のように、クライアント側でも同じリージョンに設定されたFunctionsを使用してCloud Functionsを呼び出すと、エラーが解消されることに気づきました。
それでは。
この記事が気に入ったらサポートをしてみませんか?