
こんな疑問を解決していきます。
- FlutterFire CLIを利用してFlutterとFirebaseの環境構築する方法
- firebase_options.dartが生成されない場合の対応法
Flutter案件に携わることになりそうだったため、Flutterに触って勉強していたところ、Firebaseと繋ぎこむときに手間取りました。
Flutter勉強中の人など、同じところでつまずく人に向けて本記事を残します。
Contents
FlutterFire CLIを利用してFlutterとFirebaseの環境構築する方法
Flutterでスマホアプリ等を開発する際、バックエンドでおすすめなのがFirebaseです。
認証機能やデータベースなどを手軽に構築することができ、アプリに必要な機能を数行のコードで組み込むことができます。サーバー管理などに手間をかけず、開発に集中することができます。
Flutterの開発環境が済んでいて、自身で作成したFirebaseのプロジェクトと繋ぎ込みをしていくのに便利なのが、FlutterFire CLIです。コマンドを実行するだけで、簡単にFlutterとFirebaseを繋ぎこむことができます。
手順をまとめると以下の通り。
(Flutterの環境構築は済んでいる前提です。)
(リリースはiOSとAndroidを想定しています。)
手順
- Firebase CLIをインストール
- コマンド「firebase login」でGoogleアカウントにログイン
- flutterfire_cliを有効にする
- コマンド「flutterfire configure」を実行
(リリース予定の端末を聞かれるので、iOSとAndroidを選択) - コアプラグインをインストール
- 初期化
という流れに沿って繋ぎ込みをしていきます。
難しく見えるかもしれませんが、firebaseのマニュアルに沿って行うだけで基本的には問題なくいけます。
(ここでは一つずつに手順の解説は割愛させていただきます。)
flutterfire configureを実行してfirebase_options.dartが生成されない
今回、僕もこのマニュアルに沿って、FlutterとFirebaseの繋ぎこみをしていたのですが、何かがおかしいことに気づきました。
コマンド「flutterfire configure」を実行をすると、lib/firebase_options.dartが生成されるはずなのですが、それが生成されていませんでした。
ちなみに僕の環境は以下です。
- PC:MacBook Air(M1チップ)
- Flutterバージョン:3.29.0
- Firebase CLIバージョン:13.31.1
- flutterfire CLIバージョン:1.0.1
ちなみに、flutterfire configureを実行した際に
「Which Android application id (or package name) do you want to use for this configuration, e.g. 'com.example.app'?」
とAndroidのアプリケーションIDを教えてくださいというような指示が出たら、同じ現象の可能性が高いです。問題なく実行できる場合は、このようなことを聞いてきません。
原因
原因なのですが、いろいろ調べた結果、以下の海外の記事が参考になりました。
原因は、firebase_options.dartを生成する際に用いる3つのファイルが見つからないことが原因みたいです。
見つからない3つのファイル
- android/app/build.gradle
- android/build.gradle
- android/settings.gradle
Flutterの現在の最新バージョン(3.29.0)では、上記の3つファイルは以下のような拡張子で生成されていると思います。
3つのファイル
- android/app/build.gradle.kts
- android/build.gradle.kts
- android/settings.gradle.kts
おそらくですが、Flutterの最新バージョン(3.29.0)では拡張子.gradle.ktsを作成するが、FlutterFire CLIの最新バージョン(1.0.1)は.gradleを探しに行くことが原因みたいです。
対応方法
一時的に3つのファイルの拡張子を.gradleに変更してから、コマンド「flutterfire configure」を実行しましょう。
そして、無事にlib/firebase_options.dartが生成されているのが確認できたら、3つのファイルの拡張子を元に戻しましょう。
コマンドをまとめると以下の通りです。(全てプロジェクトディレクトリで実行してください。)
zshmv android/settings.gradle.kts android/settings.gradle
mv android/build.gradle.kts android/build.gradle
mv android/app/build.gradle.kts android/app/build.gradle
flutterfire configure
mv android/settings.gradle android/settings.gradle.kts
mv android/build.gradle android/build.gradle.kts
mv android/app/build.gradle android/app/build.gradle.kts
以上の方法で、問題なくfirebaseと接続ができています。
最後に Google公式がそのうち修正するでしょう
本記事では、FlutterとFirebaseの繋ぎ込みの際に、firebase_options.dartが生成されない問題について、対応方法をまとめてみました。
Flutterを触るのは僕自身初めてで、バージョンによるバグだと思うのでかなり手こずってしまいました。
Googleがそのうち修正してくれる問題だと思いますが、同じ問題に当たった人の参考になれば嬉しいです。
本記事は以上です。