--- name: "integrating-firebase" description: "Firebase integration for Flutter including Auth, Firestore, FCM, Cloud Storage, Analytics, and Crashlytics. Use when implementing serverless backend features, real-time sync, or push notifications." metadata: last_modified: "2026-04-01 14:35:00 (GMT+8)" --- # Flutter with Firebase Integration Guide ## Goal Production architecture for integrating Google Firebase with Flutter. This skill points to specific implementation chapters — read the relevant one before writing any Firebase code. ## Workflow & References **1. Core Setup & Initialization (`firebase_core`)** If you are initializing Firebase for the first time, setting up the `flutterfire_cli`, or resolving native iOS/Android Firebase compilation errors, you **MUST** read: * [`setup.md`](./references/setup.md) **2. Authentication (`firebase_auth`)** If you are implementing login, email/password verification, social sign-ins (Google, Apple), or managing `User` sessions, you **MUST** read: * [`auth.md`](./references/auth.md) **3. Push Notifications (`firebase_messaging`)** If you are configuring Apple Push Notification service (APNs), handling FCM background handlers, or requesting notification permissions, you **MUST** read: * [`messaging.md`](./references/messaging.md) **4. Databases (`cloud_firestore`, `firebase_database`)** If you are reading/writing data, defining Freezed models, or navigating NoSQL document structures (Firestore) vs JSON trees (RTDB), you **MUST** read: * [`database.md`](./references/database.md) **5. File Storage (`firebase_storage`)** If you are uploading images/videos, generating download URLs, or restructuring storage `Reference` trees, you **MUST** read: * [`storage.md`](./references/storage.md) **6. Observability (`firebase_analytics`, `firebase_crashlytics`)** If you are logging custom analytical events, setting up global `FlutterError` and `PlatformDispatcher` error trapping, you **MUST** read: * [`analytics-crashlytics.md`](./references/analytics-crashlytics.md) **7. Security (`firebase_app_check`)** If you want to protect your Firebase backend from unauthorized access using DeviceCheck (iOS) and Play Integrity (Android), you **MUST** read: * [`app-check.md`](./references/app-check.md) **8. Advanced Architecture: Serverpod Mini BFF** If you are building a highly secure app and need to bypass Firestore Rules or protect third-party API keys (like Stripe) using a Backend-for-Frontend (BFF), you **MUST** read: * [`serverpod-mini.md`](./references/serverpod-mini.md) **9. Pricing & Cost Optimization** If you are designing the database schema or querying massive datasets, to prevent uncontrolled Firebase billing costs, you **MUST** read: * [`cost.md`](./references/cost.md) ## Constraints 1. **Never hardcode configurations:** All Firebase configs MUST be generated by the `flutterfire_cli`. 2. **Review the Cost chapter:** Before designing any Firestore schema, review [`cost.md`](./references/cost.md) to avoid queries that lead to billing disasters.