久しぶりにFirebase functionsを使ってHelloWorldしようとしたら
Your client does not have permission to get URL /helloWorld from this server
となって、少しはまってしまったので解決方法をご紹介いたします。
Google Cloud Consoleで権限を付与する
2020年1月15日時点より、Cloud Functionsの関数に関して、未認証の場合はデフォルトで呼び出しできない用になっているようです。(それまでは、未認証でも関数呼び出し実行できたが今は設定しないとできない)
そこで、Google Cloud Console内で該当する関数の設定を行います。
-
Google Cloud ConsoleのFunctionsの設定画面にログインします
2. Firebaseでプロジェクトを作成しているのと同一のアカウントでログインします
3. Firebaseの該当のプロジェクトを選択します。 -
右上隅にある [情報パネルを表示] をクリックして、[権限] タブを表示します。
-
[メンバーを追加] をクリックします。
-
[新しいメンバー] フィールドで、「allUsers」と入力します。
-
[役割を選択] プルダウン メニューから Cloud Functions > Cloud Functions 起動元 役割を選択します。
-
[保存] をクリックします。
表示されました!
これで完了です。
公式ドキュメント:
Google Cloud のドキュメントにも記載があります。
https://cloud.google.com/functions/docs/securing/managing-access-iam#allowing_unauthenticated_function_invocation
以上