見出し画像

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の処理を呼び出す際に、以下のようなエラーが発生します。

画像1

「なるほど、これはCORS関連のエラーなのか...」とCORSエラーについての対策に焦点を当てると、おそらく解決策にたどり着くことはできません。
結論から言うと、このエラーを解消するためには、プロキシの設定やCORS関連のパッケージの導入、GCPの管理画面でのFunctionsの設定変更は関係ありません。
では、このエラーをどのように解決すればよいのでしょうか?

答え

画像2

上記のように、クライアント側でも同じリージョンに設定されたFunctionsを使用してCloud Functionsを呼び出すと、エラーが解消されることに気づきました。

それでは。

この記事が気に入ったらサポートをしてみませんか?