firebaseにローカルで作成した関数デプロイしよ〜ってことで

firebaseでPermission denied to get service [runtimeconfig.googleapis.com]でデプロイ出来なかった時の話です

firebase deploy –only functions:hoge

って感じでデプロイすると下記のエラーが。。。

403  Permission denied to get service [runtimeconfig.googleapis.com]

権限がなくてデプロイ出来ないとか?

firebase logout -> firebase login でやり直してもエラーは変わらず。firebaseコンソールから見てもownerになってるな〜と。

解決

そもそもデプロイ先を設定していなかった。

ファイル名は.firebaserc

{
 "projects": {
   "default": "デフォルトであります",
   "staging": "ここ"     これから追加
 }
}

設定方法は下記コマンド

firebase use --add

上記コマンドを打ち込むとプロジェクトが表示されるので、デプロイしたいものを選択します。

その後にローカル(あなたのpc環境)でどんな名前でこのプロジェクト扱う〜?って聞かれます。下記。

What alias do you want to use for this project? (e.g. staging) staging

最後のstagingの部分を追加します。今回はstagingと設定していますが、適宜変更してください。

そうすると、.firebasercファイルにコードが追加されているかと思います。

その状態でもう一度デプロイです。

firebase deploy --only functions:hoge

これで自分はうまく行く!と思ったらまだ続きが。。。。下記のエラーが表示されました。

To try redeploying those functions, run:
   firebase deploy --only "functions:hoge"

To continue deploying other features (such as database), run:
   firebase deploy --except functions

Error: Functions did not deploy properly.

firebaseのコンソールには関数入ったけど、エラーマーク付いてるし、正常に入ってない、動いてないっぽい。って感じでした。

よくわからないので、ログ見に行きましょう。

firebase functions:log

上記を実行すると、下記の文章が!

Error: “Cannot find module fugafuga”

なるほど、自分がfugafugaをインストールするときにdevDependenciesに保存していたので本番環境で呼び出せなくなっていると。

多分 npm install –save fugafugaとかやったんだろう。

これじゃ本来あるべきDependenciesに入らないので、以下を実行。

npm install fugafuga

これでDependenciesにも入ったので、再度デプロイです!

firebase deploy --only functions:hoge

Deploy complete! が表示されたらOKですね。firebaseのコンソールに正しく入っているかと思います。

そんな感じで色々とデプロイで詰まり散らかしたので、忘れないように書いておくことにしました。

そんな感じで今回は。

以上!