FirebaseとFlutterの設定
Firebaseにプロジェクトを作成する
google-service.json
ファイルをダウンロードして下記にフォルダに設置する
\<Your Project Root>\android\app\google-services.json
/<Your Project Root>/android/build.gradle
ファイルにclasspath 'com.google.gms:google-services:4.3.10'
に追加する
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' }
android/app/build.gradle
ファイルに下記の記述を追記する
apply plugin: 'com.google.gms.google-services' dependencies { ・・・・ implementation platform('com.google.firebase:firebase-bom:29.0.3') implementation 'com.google.firebase:firebase-analytics-ktx' }
エラーが発生したときの対処
上記の設定をしてもエラーが発生する場合、下記の対応して解決したので備忘録としてメモをしておく。
android/app/build.gradle
ファイルの下記の箇所を修正する
From
minSdkVersion flutter.minSdkVersion targetSdkVersion flutter.targetSdkVersion
To
minSdkVersion 19 targetSdkVersion 30
android/build.gradle
ファイルは下記のように変更する From
//ext.kotlin_version = '1.3.50'
ext.kotlin_version = '1.6.10'
Flutterのパッケージインストール
pubspec.yaml
ファイルにcloud_firestore
とfirebase_core
の記述を追加する
dependencies: flutter: sdk: flutter (省略) cloud_firestore: ^3.1.5 firebase_core: ^1.10.6
android/app/build.gradle
ファイルにmultiDexEnabled
の記述を追加する
defaultConfig { (省略) multiDexEnabled true }
Flutterの実装
lib/main.dart
ファイルのmain関数にFirebaseの初期化とWidgetsFlutterBinding.ensureInitialized
を追加する
void main() async { WidgetsFlutterBinding.ensureInitialized(); await Firebase.initializeApp(); runApp(const MyApp()); }
- 参考URL
Firestoreへの登録処理
- 下記のクラスを呼び出すとFirebasestoreにデータが書き込まれる。
import 'package:cloud_firestore/cloud_firestore.dart'; class Firestore { static FirebaseFirestore _firebaseFirestore = FirebaseFirestore.instance; static Future<void> addUser() async { try{ final userRef = await _firebaseFirestore.collection('user').add({ 'name': '山田 太郎', 'imagePath': 'https://item-shopping.c.yimg.jp/i/l/project1-6_4530956470801', }); print('アカウント作成に成功しました。$userRef'); } catch (e){ print('アカウント作成に失敗しました $e'); } } }