マルチ環境対応のFirebase認証テンプレートアプリケーション。
- Firebase認証(メール/パスワード)
- マルチ環境対応(開発/ステージング/本番)
- Riverpodを使用した状態管理
- 環境ごとのアプリID設定
アプリIDを変更するには、以下のスクリプトを実行します:
./change_app_id.sh <新しいアプリID>例:
./change_app_id.sh com.mycompany.myappこのスクリプトは以下の環境用のアプリIDを自動的に設定します:
- 本番環境: com.mycompany.myapp
- ステージング環境: com.mycompany.myapp.stg
- 開発環境: com.mycompany.myapp.dev
- Firebase Consoleで各環境用のプロジェクトを作成
- 各環境の設定ファイルを以下のディレクトリに配置:
- 本番環境:
config/firebase/prod/firebase_config.json - ステージング環境:
config/firebase/stg/firebase_config.json - 開発環境:
config/firebase/dev/firebase_config.json
- 本番環境:
開発環境:
flutter run --flavor dev -t lib/main_dev.dartステージング環境:
flutter run --flavor stg -t lib/main_stg.dart本番環境:
flutter run --flavor prod -t lib/main_prod.dartlib/
├── screens/ # 画面UI実装
├── services/ # Firebase認証サービス
├── providers/ # 状態管理(Riverpod)
├── config/ # 環境設定
├── main_dev.dart # 開発環境エントリーポイント
├── main_stg.dart # ステージング環境エントリーポイント
└── main_prod.dart # 本番環境エントリーポイント
config/
└── firebase/ # Firebase設定ファイル
├── dev/
├── stg/
└── prod/
Riverpodを使用して以下の状態を管理:
- 認証状態
- ローディング状態
- エラー状態
各環境で以下の項目が個別に設定可能:
- アプリID
- アプリ名
- Firebase設定
- その他環境固有の設定
- Firebase設定ファイルは.gitignoreに含まれています
- 環境変数は
flavor_config.dartで管理されています - デバッグモードでは現在の環境がバナーで表示されます