😢

Firebase Functionsのdeployで詰まったところ

2021/05/02に公開

概要

ただfirebase initしたものをデプロイするだけなのに変な所で詰まってしまったので(恐らく自分だけ)
その時の気づきを残そうと思いました。

version

$ firebase --version
9.10.0

手順

  1. firebase init
    (今回使用する予定のfirestore, functions, emulators, remote configを追加)
  2. 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 consoleでfunctionsを公開にする前にfirebase initしてしまっていた。

対応

こんなミスをするのは多分自分だけのような気もしますが、firebase initする前に画像のfunctionsで公開設定しないといけなかったです。(よくよく考えれば当然ですね…)

二つ目 プランを変更する

上記のエラーで調べるとpackage.jsonのnodeを8に変えろという記事があるのですが
公式で非推奨になっているのでしない方がいいですね。

対応

consoleの左のエクスプローラの一番下にあるプランを spark -> blaze に変更し請求アカウントを紐づける。
請求先アカウントを登録しないといけなくなったようでsparkプランだとfunctionsを使えないようになったようです。

まとめ

以上の二つのコマンドを実行しただけなのにいろいろとハマってしまったので記載しました。
firebase functionsを初めて使ったので困惑してしまいました・・・。

参考

https://bellbellbell.info/2020/11/papapoint-cloud-functions/
https://qiita.com/tdkn/items/2ed2b01f2656fc50da8c

Discussion