🤷

# WindowsでアプリにFirebaseを接続するときに出た意味不明なエラー

2024/10/16に公開

前提

Firebaseのプロジェクトを作成して、コンソール画面からアプリを追加できるようになっていることが前提です。Firebaseプロジェクトの作成方法は別の記事ご覧ください。

対象者

Firebaseをアプリに接続したい人(Windows)
Firebaseの接続周りでエラーが起こって先に進めない人

問題

Flutterアプリのターミナルで以下を実行するとエラーが起こります。(your-project-nameは自分のプロジェクト名)

flutterfire configure --project=your-project-name
Fetching available Firebase projects...
FirebaseCommandException: An error occured on the Firebase CLI when attempting to run a command.
COMMAND: firebase --version
ERROR: The FlutterFire CLI currently requires the official Firebase CLI to also be installed, see https://firebase.google.com/docs/cli#install_the_firebase_cli for how to install it. 

このエラーメッセージに書かれていることを一通り試しても何の解決にもなりません。

結論

スタンドアロンバイナリで使用されているNodeのバージョンが引いために起こっています。

Firebase CLIのセットアップにはスタンドアロンバイナリを使わずにNode.jsをセットアップしましょう。

本文

Node.jsの設定方法と、ついでにFirebaseとFlutterを接続するところまでを書いていきます。

Firebaseのコンソール画面に行くとアプリが追加されていない場合はこのような画面になると思います。

一番右のFlutterアイコンをクリックすると次の画面になります。

基本的にはこの画面の指示に従って設定してもらえばOKです。

Firebase CLIのインストール(本題)

早速CLIリファレンスを覗いてみましょう。
WindowsではFirebaseの設定のためにNode.jsを設定する必要があるらしいです。
Node.jsがなんなのかよくわかりませんがJavaScriptを使用した何かではありそうです(無知)。

「Node.jsの使用に慣れていない方はこちら」とご丁寧にスタンドアロンバイナリが用意されているのですが、実は罠で、Flutterに接続したい場合は選択してはいけません。

Node.jsからインストーラーをダウンロードしてインストールしていってください。
途中でAdd to Pathという項目があるのでこれにチェックが入っているか確認してください。(デフォルトでチェックは入っているはずです。)

インストールが完了したらコマンドプロンプトを立ち上げて以下を入力してみましょう。
正しくインストールできていたらバージョンが返されます。

node --version

npm --version

続いてFirebase CLIをダウンロードします。
同じくコマンドプロンプトから以下を実行します。

npm install -g firebase-tools
70 packages are looking for funding

などと表示されたら完了です。これでFirebaseの機能を利用できます。
"C:\Users\UserName\AppData\Roaming\npm\firebase"が見つかると思います。

おまけ

Firebaseにログイン(おまけ)

コマンドプロンプトで以下を実行します。

firebase login
// もしくは
firebase login:ci

:ciをつけるのとつけないのでは何かが違うらしいですがよくわかりません(無知)。
ひとまず接続できればいいのでどちらかを実行してください。
login success!できたら以下を実行してプロジェクトが存在するか確認しましょう。

firebase projects:list

見覚えのあるプロジェクトが表示されれば成功です。
ここまで来たらあとはFirebaseのいうとおりにコマンドを実行していけば接続は完了です。
お疲れさまでした。

補足

終わりに

エラーメッセージで検索してもいい解決策がなく、同じ状況になっている人のために書いてみました。
お役に立てたら幸いです。
ここまで読んでいただきありがとうございました!

Discussion