はじめに (対象読者・この記事でわかること)

この記事は、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 側の設定:

Gradle
android { defaultConfig { applicationId "com.example.myapp" // ←一致しているか } }

ステップ2: Gradle ファイルの設定見直し

次に、Androidネイティブ側のGradle設定を見直します。
android/build.gradle に以下のように記載されているかを確認します。

Gradle
buildscript { dependencies { classpath 'com.google.gms:google-services:4.3.15' // 最新版を使用 } }

そして、android/app/build.gradle に以下の2行が追加されているかを確認します。

Gradle
apply 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 を実行してからビルドし直すことで解決しました。

解決策

最終的に、以下の手順でビルドエラーを解決しました。

  1. google-services.json を再ダウンロードして配置し直す
  2. android/build.gradlegoogle-services を最新版に更新
  3. android/app/build.gradlefirebase-bom を使った依存関係を追加
  4. ターミナルで以下を実行してキャッシュをクリア
Bash
cd 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ログインも追加する方法について解説する予定です。

参考資料