前回の復習
記事はこちら。
AndroidとiOSで共通する設定も行ってますので、先に上記記事の内容から行うことをオススメします。今回はAndroid編です。と言っても大体の設定やコード追加は終わってますので、難しい事はありません。
(Firebase側)プロジェクト作成&GoogleServices.json設定
まずはGoogleServices.jsonをダウンロードするところまで進めてください。ダウンロードしたら、android/app内に配置します。次にandroid/build.gradleをVSCode等で開き、
dependencies {
classpath 'com.android.tools.build:gradle:3.5.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.google.gms:google-services:4.3.3' } <-追加Google-Servicesの記述を追加します。バージョンに関しては最新版をこちらで確認してください。
https://maven.google.com/web/index.html#com.google.gms:google-services
また、最終行に
apply plugin: 'com.google.gms.google-services'
を追加します。
その次はandroid/app/build.gradleを開きます。先ほどとはパスが違いますので気をつけてください。
apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services' ←追加する
apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
真ん中ぐらいに上記の記述があるので、apply plugin: ‘com.google.gms.google-services’を追加してください。そして一番最後に
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'com.google.firebase:firebase-analytics:17.4.4' <=追加する
}com.google.firebase:firebase-analyticsに関する記述を追加します。バージョンはググって新しい分を指定してください。
更に、minSdkVersionを上げておく必要があるそうです。
minSdkVersion 21
自分の環境では21でOKでした。
まだ作業はあります。次はandroid/settings.gladleを開き、一番下に
def flutterProjectRoot = rootProject.projectDir.parentFile.toPath()
def plugins = new Properties()
def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins')
if (pluginsFile.exists()) {
pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) }
}
plugins.each { name, path ->
def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile()
include ":$name"
project(":$name").projectDir = pluginDirectory
}を追加します。追加したら保存し、ターミナルを開きプロジェクトのルートフォルダで
flutter packages get
を実行してください。
デバッグしてみる
デバッグしてみると動くはずです。ですがエラーメッセージもコンソールに表示される場合があります。自分の場合は
* What went wrong: Execution failed for task ':app:processDebugGoogleServices'. > No matching client found for package name 'プロジェクトのID'
でした。どうもダウンロードした設定ファイルとアプリでIDが違っている様です。android/app/build.gradleの中にある、applicationIdを見てみると,
com.muchilog.appname.appname
の様に、なぜかアプリ名が2回繰り返されてましたので修正しました。
こちらを参考にしました。補足するとするならば、AndroidManifest.xmlは複数存在します。

あとはandroid/app/src/main/kotlin/com/muchilog/appname/appnameとなっている場所があるので、正しいバンドルIDと揃う様にファインダーでフォルダを増減させ、そして一番深いところにMainactivity.ktを配置します。このMainactivity.ktも編集してください。
にしても不思議ですね。iOSは前回でも確認しましたがバンドルIDはプロジェクトを作成した時点で正しく設定されていました。Androidだけ変な事に。原因は不明です。何か情報ありましたら教えていただけると幸いです。
今度こそデバッグ
今度こそはうまく行きました。FirebaseConsoleを確認すると、

まとめ
長かったですね!これでAndroidも無事完了です。次はFirebaseAuthenticationの実装を行います。よろしければこちらも試してみてください。
