😢
Firebase Functionsのdeployで詰まったところ
概要
ただfirebase initしたものをデプロイするだけなのに変な所で詰まってしまったので(恐らく自分だけ)
その時の気づきを残そうと思いました。
version
$ firebase --version
9.10.0
手順
- firebase init
(今回使用する予定のfirestore, functions, emulators, remote configを追加) - firebase deploy
この短い二つのコマンドの中でいくつかエラーが出ました。
.eslint
ESLintとtypescriptも追加してinitしたのですが
その時にextendsの最後に ,
がないためエラーが出てしまっていました。
,
の追加で解決。
deploy
npm run deploy
実行時、以下のエラーが出る。
Error: HTTP Error: 400, Billing account for project 'XXXXXXXXX' is not found. Billing must be enabled for activation of service(s) 'cloudbuild.googleapis.com,containerregistry.googleapis.com' to proceed.
これについては、2つ原因がありました。
firebase init
してしまっていた。
一つ目 firebase consoleでfunctionsを公開にする前に対応
こんなミスをするのは多分自分だけのような気もしますが、firebase initする前に画像のfunctionsで公開設定しないといけなかったです。(よくよく考えれば当然ですね…)
二つ目 プランを変更する
上記のエラーで調べるとpackage.jsonのnodeを8に変えろという記事があるのですが
公式で非推奨になっているのでしない方がいいですね。
対応
consoleの左のエクスプローラの一番下にあるプランを spark -> blaze に変更し請求アカウントを紐づける。
請求先アカウントを登録しないといけなくなったようでsparkプランだとfunctionsを使えないようになったようです。
まとめ
以上の二つのコマンドを実行しただけなのにいろいろとハマってしまったので記載しました。
firebase functionsを初めて使ったので困惑してしまいました・・・。
参考
Discussion