fc2ブログ
 
■プロフィール

クリエイトウェーブ

Author:クリエイトウェーブ
開発における、諸々を書いていきたいなと思っています。
mail : info@createwave.jp

■最近の記事
■カテゴリー
■最近のコメント
■月別アーカイブ

■最近のトラックバック
■ブログ内検索

■RSSフィード
■リンク
Cloud Functionsで作ったURLへアクセスするとpermissionエラーになる
最近ブログを更新してないので大分間があいてしまいました。

さて本日の話題は、Cloud Functionsで作ったAPIへUnityでアクセスしてみたら、permissionエラーになってしまったというお話。
Unityで何回アクセスしても「ProtocolError」になってしまう。他のAPIは問題なし。
もう5年くらいは、CloudFunctionsのお世話になってる訳なのですが、初体験です。

試しにURLをブラウザ上で直接叩いてみましたが、他のAPIは「BadRequest」と表示されOK!。色々セキュリティプログラムがが入ってるので、ちゃんとプログラムを通ってます。
でも新しく作ったAPIは、「Error: Forbidden Your client does not have permission to get URL /作ったAPI from this server.」と表示されている。
明らかに挙動が違います。

ひょっとするとCloud Functionsをデプロイし直せば動くようになるかもしれませんが、Googleコンソールで修正したのでメモ代わりに載せておきます。

まずはブラウザ上でGoogleコンソールのCloudFunctions項目をいじる必要があります。
FireBaseコンソールからGoogleコンソールに行ってCloudFunctions項目までの行き方は、前回のブログ
「Cloud Functionsのプログラムソースをサーバーからもってくる方法」と同じです。

CloudFunctionsのページを見ると、問題のAPIだけ「Authentication」項目のところに「未認証を許可」が表示されていません。どうやらこれが原因のようです。
func1.png
https://admin.blog.fc2.com/control.php?mode=control&process=upload&insert=body#

ここを修正していきます。
func2.png
問題のAPIのチェックボックスをオンにして、権限ボタンを押します。

func3.png
現れたメニューの「プリンシバルを追加」を押します。


func4.png
新しいプリンシバルに「allUsers」
ロールに「Cloud Functions 起動元」
を追加して保存ボタンを押します。

う〜ん、普通にデプロイしただけなのに、なぜこうなったのだろう。

カテゴリー:FireBase | TM(0) | CM(0)