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が異なるという点が大きなポイントかと思いました。


一つ前の記事 日本がITの分野に弱い理由-3 100点を目指すことと足を引っ張り合うこと
次の記事 GitHub SSHの登録 fatal: Could not read from remote repository.