Blog

Firebase Fetch – No Access-Control-Allow-Origin has been blocked by CORS policy

CloudFunctionsにてエラー

原因:GCPのCloudFunctionsに必要な権限がない

CloudFunctionsのurlには、uscentral-1などの、ロケーションが含まれるため、FirebaseHostingとは基本的にURL が異なる

解決:GCPのCloudFunctionsにてallAuthenticatedUsersCloudFunctions起動元の権限を与えることで解決

Authを実装しているアプリはこちらのほうが安全

allUsersだとログインしていなくても、urlを叩いたら実行されてしまう

手順: GCPにアクセス CloudFunctionsを選択

チェックボックスをクリックして権限を選択

プリンシパルの追加をする。(日本語にするとわかりにくい)

あとは、上記解決策と同じ、CloudFunctions起動元の権限を与える

エラーをそのまま読むと、CROSS ORIGINなので、リクエストheader等を追加すると思ったけど、必要な権限をCloudFunctionsに与えれば解決可能

CloudFunctionとFirebaseHostingのURLが異なるという点が大きなポイントかと思いました。

ご連絡、質問は、Facebook よりお願いいたします。

コネクト facebook page