mcpField
F
flutterfire-configure

flutterfire-configure

github.com/evanca開発663196 回インストール3 週間前に更新
リポジトリ

flutterfire-configure について

FlutterFire CLI で Flutter アプリの Firebase を設定するためのガイダンススキルです。初期化、検証、アプリの flavor ごとの個別設定を扱います。

主な機能

  1. 01FlutterFire CLI による設定
  2. 02Firebase 初期化の案内
  3. 03設定の検証方法
  4. 04flavor ごとの Firebase プロジェクト
  5. 05flavor 別の設定ファイル生成

活用シーン

  1. 01Flutter プロジェクトへの Firebase 導入
  2. 02新しいプラットフォームやサービスの設定
  3. 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. 検証とベストプラクティス

設定後、正しく動作することを確認します。

  1. flutter run を実行し、Firebase の初期化エラーが発生せずにアプリが起動することを確認します。
  2. デバッグコンソールで Firebase initialized successfully などの確認メッセージを確認します。
  3. 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)でインポートします。
  • 複数フレーバーの設定を自動化するヘルパースクリプトを使用します。

参考資料

コメント