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のコンソールに正しく入っているかと思います。
そんな感じで色々とデプロイで詰まり散らかしたので、忘れないように書いておくことにしました。
そんな感じで今回は。
以上!