Open1
FlutterにFirebaseを組み込む
目次
- Flutterアプリのプロジェクトを作成
- Firebaseプロジェクトを作成
- FlutterFire CLI を起動
- アプリ側での追加設定
Flutterアプリのプロジェクトを作成
- 普通にFlutterアプリのプロジェクトを作成する
- packageに
firebase_core
だけ入れておく
$ flutter pub add firebase_core
Firebaseプロジェクトを作成
- 普通にFirebaseのプロジェクトを作成する
- 名前はアプリに合わせる必要はないが、分かるような名前がベスト
FlutterFire CLI で設定
- Firebaseプロジェクトの「アプリ追加」のメニューから「Flutter」を選択
- 任意のディレクトリで
flutter_cli
のアクティベート
# これ毎回やる必要あるの?
$ dart pub global activate flutterfire_cli
- アプリのプロジェクトルートでFlutterFireの設定を実行
- 途中でプラットフォームの選択を促されるので、スペースキーで選択してエンターキー
# FirebaseのプロジェクトIDを指定することになる
$ flutterfire configure --project=■■■■■■■■■■■
- このコマンドを実行することで、以下のことが行われる
- アプリ内に設定ファイルが自動生成される
- Androidプロジェクトに対して、プラグイン設定を行なってくれる
- Firebaseの管理画面に、アプリの追加をおこなってくれる
アプリ側での追加設定
-
main.dart
でFirebaseの初期化設定を行う
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp(
options: DefaultFirebaseOptions.currentPlatform,
);
runApp(const MyApp());
}
- iOSやmacOSのpodfileでバージョンを上げる
# iOSなら
platform :ios, '15.0'
# macOSなら
platform :osx, '12.0'
- macOSのentitlementファイルに以下を追加する
macos/Runner/DebugProfile.entitlements
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.app-sandbox</key>
<true/>
<key>com.apple.security.cs.allow-jit</key>
<true/>
<key>com.apple.security.network.server</key>
<true/>
<!-- Add the following two lines -->
<key>com.apple.security.network.client</key>
<true/>
</dict>
</plist>
macos/Runner/Release.entitlements
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.app-sandbox</key>
<true/>
<!-- Add the following two lines -->
<key>com.apple.security.network.client</key>
<true/>
</dict>
</plist>
- Android は、
firebase_core
だけなら問題ないが、他のfirebaseサービスを入れる場合は、minSdkを上げる必要がある。 - 最初からもう上げてもいいかもね