はじめに (対象読者・この記事でわかること)
この記事は、Flutterでアプリ開発をしている中で、Firebase Authenticationを使ってログイン機能を実装しようとしたものの、ビルド時にエラーが発生して困っている方を対象としています。
この記事を読むことで、Firebase Authenticationを正しく導入するための手順と、ビルドエラーの原因となる典型的な問題の解決方法が理解できます。特にAndroidビルドでエラーが出ている場合の対処法に焦点を当てています。
前提知識
この記事を読み進める上で、以下の知識があるとスムーズです。
- Flutterの基本的なプロジェクト構成の理解
- Androidの Gradle ファイルの役割の基本的な理解
- Firebase プロジェクトの作成と google-services.json の配置方法
Flutter × Firebase Authentication導入で遭遇したビルドエラー
FlutterアプリにFirebase Authenticationを導入する際、公式ドキュメント通りにfirebase_authパッケージを追加しても、ビルドが失敗することがあります。
特にAndroidでビルドを行った際に、以下のようなエラーが出るケースが多く見られます。
Execution failed for task ':app:processDebugGoogleServices'.
> No matching client found for package name 'com.example.myapp'
このエラーは、google-services.json に記載されているパッケージ名と、Flutterアプリのパッケージ名が一致していないことが原因です。
また、Firebase SDK のバージョンや、Gradle の設定が不適切な場合にも同様のエラーが発生します。
ビルドエラーを解決するための具体的な手順
以下では、実際に筆者が遭遇したエラーを解決するまでの手順を詳しく解説します。
ステップ1: google-services.json の配置と内容確認
まず、google-services.json が正しい場所に配置されているかを確認します。
このファイルは、Firebase コンソールからダウンロードしたものを、android/app/ ディレクトリに配置する必要があります。
次に、ファイル内の package_name が、Flutterアプリの android/app/build.gradle に記載されている applicationId と一致しているかを確認します。
Json"client": [ { "client_info": { "mobilesdk_app_id": "1:123456789:android:abcdef123456", "android_client_info": { "package_name": "com.example.myapp" // ←ここが一致しているか } } } ]
android/app/build.gradle 側の設定:
Gradleandroid { defaultConfig { applicationId "com.example.myapp" // ←一致しているか } }
ステップ2: Gradle ファイルの設定見直し
次に、Androidネイティブ側のGradle設定を見直します。
android/build.gradle に以下のように記載されているかを確認します。
Gradlebuildscript { dependencies { classpath 'com.google.gms:google-services:4.3.15' // 最新版を使用 } }
そして、android/app/build.gradle に以下の2行が追加されているかを確認します。
Gradleapply plugin: 'com.google.gms.google-services' // 一番下に追加 dependencies { implementation platform('com.google.firebase:firebase-bom:32.0.0') // BOMを使ってバージョン管理 implementation 'com.google.firebase:firebase-auth' }
ハマった点やエラー解決
筆者がハマったのは、google-services プラグインのバージョンが古かったことでした。
最初は 4.3.10 を使っていたのですが、これが Firebase Auth の最新版と互換性がなく、ビルドエラーが出ていました。
また、firebase_auth パッケージのバージョンを ^4.0.0 以上にしたことで、ネイティブ側のSDKもそれに追従する必要がありました。
さらに、Gradle のキャッシュが古くてエラーが出続けたこともあり、./gradlew clean を実行してからビルドし直すことで解決しました。
解決策
最終的に、以下の手順でビルドエラーを解決しました。
google-services.jsonを再ダウンロードして配置し直すandroid/build.gradleのgoogle-servicesを最新版に更新android/app/build.gradleにfirebase-bomを使った依存関係を追加- ターミナルで以下を実行してキャッシュをクリア
Bashcd android ./gradlew clean cd .. flutter clean flutter pub get flutter run
これで、Firebase Authentication が正しくビルドされるようになりました。
まとめ
本記事では、FlutterアプリにFirebase Authenticationを導入した際に発生したビルドエラーの原因と、それを解決するための手順を解説しました。
google-services.jsonのパッケージ名とアプリのapplicationIdが一致しているかを確認する- Gradle ファイルの設定を見直し、最新の Firebase SDK に対応させる
- キャッシュをクリアしてからビルドし直すことで、エラーを解決できる
この記事を通して、Firebase Authenticationの導入で躓いた方が、スムーズにログイン機能を実装できるようになることを願っています。
次回は、Firebase Authenticationでメールアドレスとパスワードでの認証だけでなく、Googleログインも追加する方法について解説する予定です。
参考資料
