What Firebase gives a Flutter app
Authentication with 12+ providers built in. Firestore for document data. Cloud Storage for files. Cloud Functions for backend logic. Crashlytics for crashes. Analytics via GA4. Cloud Messaging for push. One SDK per module: firebase_auth, cloud_firestore, firebase_storage, cloud_functions, firebase_crashlytics.
Auth setup that passes Apple review
Enable email/password. Enable Sign in with Apple (required by App Store Guideline 4.8 if you offer any third-party sign-in). Configure account deletion — an in-app path is required. Enable email verification and password reset.
Firestore security rules, briefly
Rules live in firestore.rules and are evaluated on every request. A minimal per-user rule: match /users/{uid}/data/{doc} { allow read, write: if request.auth.uid == uid; }. Test rules with the emulator before deploying — an over-permissive rule leaks every user's data.
Cloud Functions for the things a client cannot do
Anything security-sensitive (server-side purchase validation, admin operations, third-party API calls with secret keys) belongs in Cloud Functions. Deploy them alongside your rules; they run under a service account, not the caller's auth.
Crashlytics for production stability
Firebase Crashlytics for Flutter captures native crashes and Dart exceptions with symbolication. High ANR rates on Play get an app delisted; Crashlytics tells you before Play does.
The Firebase pieces you probably do not need on day one
ML Kit, App Distribution (unless you have testers), Dynamic Links (deprecated 2025), Remote Config (nice-to-have), Test Lab (nice-to-have). Start with Auth + Firestore + Storage + Crashlytics.
Frequently asked
- Are Firebase and Firestore free?
- Free Spark plan includes 1 GB Firestore storage, 50k reads/day, 20k writes/day, 5 GB Cloud Storage. Blaze plan is pay-as-you-go above that.
- Can I self-host Firebase?
- No. If self-hosting matters, use Supabase.
- Do I need FlutterFire configure?
- Yes — dartlang.org/tools/flutterfire-cli. It generates the config files you need for both platforms.
Primary sources
Official documentation this page is grounded in. Verified to resolve.