3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

FlutterでFirebaseを使ってみる〜Firebase導入編(Android)〜

Posted at

投稿の経緯

FlutterのキャッチアップでFirebaseと連携してFirestoreを使うサンプルプロジェクトを立ち上げました。今回はAndroidアプリにFirebaseを導入してエミュレーターでビルドするところまでを書こうと思います。

iOSアプリにFirebaseを導入する記事は↓コチラ↓

環境

Flutter:2.8.1
MacOS:12.1

サンプルプロジェクト

GitHubにコードPushしています。気になる方はご覧ください。
QR_925113.png

Firebaseの導入

公式情報を参考にして進めていきます。

Firebaseプロジェクトの作成はiOSの記事の方で作成したのでアプリをFirebaseに登録するところから書いていきます。

アプリをFirebaseに登録する

image.png
Firebaseプロジェクトを作成したらコンソールのAndroidアイコンからアプリをFirebaseに登録しましょう。
Android パッケージ名の箇所にアプリのパッケージ名を入力します。
パッケージ名は、アプリケーション ID と呼ばれることもあります。
image.png
パッケージ名は/Flutterプロジェクト/android/app/build.gradle/から取得します。

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 構成ファイルを追加する

image.png
続いてgoogle-services.jsonをダウンロードしてファイルをFlutterアプリに追加します。
fs.png
保存場所は/Flutterプロジェクト/android/app/に保存します。

続いて、Gradleファイルにgoogle-servicesプラグインを追加します。
/Flutterプロジェクト/android/build.gradleに、GoogleサービスのGradleプラグインを含めるためのルールを追加します。GoogleのMavenリポジトリがあることも確認してください。

build.gradle
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プラグインを適用します。

build.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でご依頼お待ちしております!
Twitter_QR.png

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?