FlutterとFirebaseの連携手順のメモ
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');
}
}
}
