投稿の経緯
FlutterのキャッチアップでFirebaseと連携してFirestoreを使うサンプルプロジェクトを立ち上げました。今回はAndroidアプリにFirebaseを導入してエミュレーターでビルドするところまでを書こうと思います。
iOSアプリにFirebaseを導入する記事は↓コチラ↓
環境
Flutter:2.8.1
MacOS:12.1
サンプルプロジェクト
GitHubにコードPushしています。気になる方はご覧ください。
Firebaseの導入
公式情報を参考にして進めていきます。
Firebaseプロジェクトの作成はiOSの記事の方で作成したのでアプリをFirebaseに登録するところから書いていきます。
アプリをFirebaseに登録する
Firebaseプロジェクトを作成したらコンソールのAndroidアイコンからアプリをFirebaseに登録しましょう。
Android パッケージ名
の箇所にアプリのパッケージ名を入力します。
パッケージ名は、アプリケーション ID と呼ばれることもあります。
パッケージ名は/Flutterプロジェクト/android/app/build.gradle/
から取得します。
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.ken.firestore_training"
// 以下省略 //
}
今回のサンプルプロジェクトの場合はcom.ken.firestore_training
になります。
アプリのニックネームとデバッグ用の署名証明書 SHA-1は任意なので今回はスキップしてアプリを登録します。
Firebase 構成ファイルを追加する
続いてgoogle-services.json
をダウンロードしてファイルをFlutterアプリに追加します。
保存場所は/Flutterプロジェクト/android/app/
に保存します。
続いて、Gradleファイルにgoogle-servicesプラグイン
を追加します。
/Flutterプロジェクト/android/build.gradle
に、GoogleサービスのGradleプラグインを含めるためのルールを追加します。GoogleのMavenリポジトリがあることも確認してください。
buildscript {
ext.kotlin_version = '1.3.50'
repositories {
google() // Google's Maven repository ここがあるか確認
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:4.1.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.google.gms:google-services:4.3.10' // Google Services plugin を追加
}
}
allprojects {
repositories {
google() // Google's Maven repository ここがあるか確認
mavenCentral()
}
}
rootProject.buildDir = '../build'
subprojects {
project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
project.evaluationDependsOn(':app')
}
task clean(type: Delete) {
delete rootProject.buildDir
}
続いて、/Flutterプロジェクト/android/app/build.gradle/
で、GoogleサービスのGradleプラグインを適用します。
// 省略
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
apply plugin: 'com.google.gms.google-services' // Google Services plugin を追加
// 省略
ここまでできたらターミナルでflutter packages get
を実行してください。
FlutterFireプラグインを追加する
コチラの記事にFlutterFireプラグインを追加する内容を記事にしています。
アプリをビルドする
FlutterFireプラグインを追加してプラグインをメジャーバージョンへアップデートしたらビルドを実行しましょう。
The plugin cloud_firestore requires a higher Android SDK version.
Fix this issue by adding the following to the file /Users/ユーザー名/Library/Mobile Documents/com~apple~CloudDocs/Flutter_projects/アプリ名/android/app/build.gradle:
android {
defaultConfig {
minSdkVersion 19
}
}
Note that your app won't be available to users running Android SDKs below 19.
Alternatively, try to find a version of this plugin that supports these lower versions of the Android SDK.
するとこのようなエラーが発生すると思います。このエラーは下記のstackoverflowの記事で解説されています。
私はひとまずminSdkVersion 30
に変更して対応しました。
この状態でビルドすれば成功すると思います。
おわりに
今回はFlutterプロジェクトのAndroidアプリにFirebaseを導入して、エミュレーターでビルドするところまでを記事にしました。
ご覧いただきありがとうございました。
こうしたほうがいいや、ここはちょっと違うなど気になる箇所があった場合、ご教示いただけると幸いです。
お知らせ
現在副業でiOSアプリ開発案件を募集しています。
↓活動リンクはこちら↓
https://linktr.ee/sasaki.ken
Twitter DMでご依頼お待ちしております!