FlutterとFirebaseを紐づけるときにエラー

タイトルのとおり、初期設定がちょっと面倒だったので記録に残しておきます。

目次

エラー概要

とりあえずFlutterをinitして、Firebaseのプロジェクトを作成して、案内に沿ってコマンドを実行していました。

問題がおきたのは$ flutterfire configure --project={project_id}を実行したところ。

Which Android application id (or package name) do you want to use for this configuration, e.g. ‘com.example.app’?

という質問があったので、パッケージ名を設定しようとしました。
学習目的のアプリだったので、適当でいいやとつけようとしたところ

FirebaseCommandException: An error occured on the Firebase CLI when attempting to run a command.

COMMAND: firebase apps:create android chatapp (android) –package-name={package_name} –json –project={project_id}

ERROR: Failed to create Android app for project {project_id}. See firebase-debug.log for more info.

というエラーが発生しました。

エラー原因

エラーの原因は一つではないので「コレです!」とは言えないのですが、私の場合はパッケージ名に”-“(ハイフン)を入れていたことでした。私はしょうもないところでしっかりミスを拾うタイプです。

”_”(アンダースコア)にしたら問題なく作成してくれました。

他にもfirebaseに紐付けしすぎたことでAPIエラーになる場合などもあるようです。
(以下参考記事)

note(ノート)
[アプリ紐づけ過ぎ🤮] flutterfire configure コマンドで FirebaseCommandException: An error occured on ... 理由はいろいろある。ググっても記事はたくさんある。 今回ワイが陥ったのは 要因) 「特定の Firebase プロジェクトにアプリを紐づけ過ぎた」ことが要因であった。 解消法...

エラーの対処手順

とりあえずエラーが出てから原因を推測して対応するまでの流れを簡単に記載しておきます。

まず実行ログを確認

先ほどのエラーですが、

FirebaseCommandException: An error occured on the Firebase CLI when attempting to run a command.

COMMAND: firebase apps:create android chatapp (android) –package-name={package_name} –json –project={project_id}

ERROR: Failed to create Android app for project {project_id}. See firebase-debug.log for more info.

ちゃんと読んでみると”See firebase-debug.log for more info.”と書いてあります。

詳しくはfirebase-debug.logを見てね、と。

「firebase-debug.logってなんやねん。」となるはずです。私はなった。

このログファイルですが、エラーが起きた際にコマンドを実行したディレクトリに作成されるものでした。

これを開いてみましょう。

ログファイルを見てみる

ログファイル開くと色々書いてあります。

とりあえずErrorでキーワード検索してみたら(私のケースでは)以下の表記を見つけました。

[debug] [2025-01-13T06:01:48.676Z] <<< [apiv2][body] POST https://firebase.googleapis.com/v1beta1/projects/{project_id}/androidApps {“error”:{“code”:400,”message”:”Request contains an invalid argument.”,”status”:”INVALID_ARGUMENT”}}

不正な引数があるっぽい。

ここからバリデーションエラーかなと推測し、解決したという流れになります。

パッケージ名の命名規則について

簡単に解決したので命名規則について詳しくは調べていないのですが、Android Developersの“アプリ モジュールを設定する”に以下の記載がありました。

アプリケーション ID は従来の Kotlin または Java パッケージ名に似ていますが、アプリケーション ID の命名規則はもう少し厳密になっています。

  • 2 つ以上のセグメント(1 つ以上のドット)が必要
  • 各セグメントは文字で始まる必要がある
  • 使用できる文字は英数字と下線のみ(a~z、A~Z、0~9、_)

これに沿った名前にしておけば問題ないんじゃないかなと思います。

自社ドメイン+アプリ名が良いっていう話も見かけたので、以下のように記載するとよさそうです。

自社ドメイン: hoge.co.jp
アプリ名: fuga app
→ jp.co.hoge.fuga_app (ドメインは後ろから順に書くのが良いらしい)

Firebaseのエラーわかりづらくない?

ログの場所教えてくれないしエラーの内容大雑把だしわかりづらいと思うのは私だけでしょうか。(反語)

とはいえ、エラーにぶつかった先人たちが色々残してくれるのですぐに解決はできそうですね。
バリデーションぐらいはちゃんと把握しておけよとか言われるかもしれないけど。

この記事もこの後エラーにぶつかった方の一助になれば嬉しいです。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

都内Edtech企業のコーポレートエンジニア。
業務改善・自動化についての開発をしています。
エンジニア歴9年、コーポレートエンジニア歴4年。

目次