flutterfire-configure について
FlutterFire CLI で Flutter アプリの Firebase を設定するためのガイダンススキルです。初期化、検証、アプリの flavor ごとの個別設定を扱います。
主な機能
- 01FlutterFire CLI による設定
- 02Firebase 初期化の案内
- 03設定の検証方法
- 04flavor ごとの Firebase プロジェクト
- 05flavor 別の設定ファイル生成
活用シーン
- 01Flutter プロジェクトへの Firebase 導入
- 02新しいプラットフォームやサービスの設定
- 03開発、ステージング、本番 flavor の構成
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ evanca/ flutter-ai-rules --skill flutterfire-configureインストール後、Claude Code で/flutterfire-configureを入力して読み込まれたか確認します。
詳細
FlutterFire 設定スキル
このスキルでは、Flutter アプリケーションで Firebase を正しくセットアップし、設定する方法を定義します。
使用するタイミング
次の場合にこのスキルを使用します。
- Flutter プロジェクトに初めて Firebase を追加するとき。
- 新しい Firebase サービスまたはプラットフォームを追加した後に
flutterfire configureを実行するとき。 main.dartで Firebase を初期化するとき。- 複数のアプリのフレーバーに対して、個別の Firebase プロジェクトをセットアップするとき。
1. 前提条件
必要なツールをインストールします。
npm install -g firebase-tools
firebase login
dart pub global activate flutterfire_cli
プラットフォームの最小要件:
- Android:API レベル 19(KitKat)以上
- Apple:iOS 11 以上
2. セットアップと設定
# From your Flutter project directory:
flutterfire configure
# Add the core Firebase package:
flutter pub add firebase_core
- 新しいプラットフォームのサポートを追加したとき、または新しい Firebase サービスの使用を開始するときは、
flutterfire configureを再実行してください。 - Android 固有のサービス(Crashlytics、Performance Monitoring)では、FlutterFire CLI が必要な Gradle プラグインを自動的に追加します。
- Firebase プラグインを新しく追加した後は、
flutter runで再ビルドしてください。
3. Firebase の初期化
import 'package:firebase_core/firebase_core.dart';
import 'firebase_options.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp(
options: DefaultFirebaseOptions.currentPlatform,
);
runApp(const MyApp());
}
- Firebase の初期化前に
WidgetsFlutterBinding.ensureInitialized()を呼び出してください。 - Firebase の初期化は、他の Firebase サービスを呼び出す前に行ってください。
firebase_options.dartは絶対に手動で変更しないでください。自動生成されるファイルです。firebase_options.dartはバージョン管理にコミットしてください。秘密情報ではない設定識別子が含まれています。- Firebase Emulator Suite の場合:
await Firebase.initializeApp(demoProjectId: "demo-project-id")。
4. 検証とベストプラクティス
設定後、正しく動作することを確認します。
flutter runを実行し、Firebase の初期化エラーが発生せずにアプリが起動することを確認します。- デバッグコンソールで
Firebase initialized successfullyなどの確認メッセージを確認します。 firebase_options.dartが正しいプロジェクト ID で生成されたことを確認します。
- Crashlytics、Remote Config、その他の製品を最適に利用するには、Firebase Analytics を有効にしてください。
- データの一貫性を保つため、すべてのプラットフォームで同じ Firebase プロジェクトを使用してください。
- 特定の Firebase サービスを使用する iOS/macOS アプリでは、Xcode で Keychain Sharing 機能を追加してください。
- デバッグビルドとリリースビルドの両方で Firebase の設定をテストしてください。
- Flutter プラグインと基盤となる Firebase SDK のバージョン互換性を確認してください。
5. 複数のアプリのフレーバー
環境(development、staging、production)ごとに個別の Firebase プロジェクトを作成します。
flutterfire config \
--project=flutter-app-dev \
--out=lib/firebase_options_dev.dart \
--ios-bundle-id=com.example.flutterApp.dev \
--ios-out=ios/flavors/dev/GoogleService-Info.plist \
--android-package-name=com.example.flutter_app.dev \
--android-out=android/app/src/dev/google-services.json
フレーバーごとに Firebase の初期化を一元化します:
// firebase.dart
import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/services.dart';
import 'package:flutter_app/firebase_options_prod.dart' as prod;
import 'package:flutter_app/firebase_options_stg.dart' as stg;
import 'package:flutter_app/firebase_options_dev.dart' as dev;
Future<void> initializeFirebaseApp() async {
final firebaseOptions = switch (appFlavor) {
'prod' => prod.DefaultFirebaseOptions.currentPlatform,
'stg' => stg.DefaultFirebaseOptions.currentPlatform,
'dev' => dev.DefaultFirebaseOptions.currentPlatform,
_ => throw UnsupportedError('Invalid flavor: $appFlavor'),
};
await Firebase.initializeApp(options: firebaseOptions);
}
// main.dart
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await initializeFirebaseApp();
runApp(const MainApp());
}
appFlavorまたは環境変数を使用して、実行時に設定を選択します。- 各フレーバーの設定を名前空間エイリアス(例:
as dev)でインポートします。 - 複数フレーバーの設定を自動化するヘルパースクリプトを使用します。
参考資料
コメント
Markdown 対応