Flutter + Firebase
BeginnerMobile AppFlutter cross-platform app with Firebase for real-time data, auth, and cloud storage.
Published 27 September 2026
About Flutter + Firebase
Flutter with Firebase is the most popular stack for building cross-platform mobile apps that target iOS and Android from a single codebase. Flutter's Dart-based widget system compiles to native ARM code, producing smooth 60fps performance without a JavaScript bridge. Firebase provides the full backend: Firestore for real-time document database, Firebase Auth for email, Google, and Apple sign-in, and Firebase Storage for file uploads.
The integration is seamless: Firebase's FlutterFire SDK connects the Flutter app to all Firebase services with minimal configuration. Firestore's real-time listeners update the Flutter UI automatically when data changes on the server. Firebase Auth handles token refresh and session persistence transparently. The combination eliminates the need to build or manage a backend API for most mobile app patterns.
This stack is the standard choice for mobile indie developers, startup MVPs, and small development teams who want to ship a polished cross-platform app quickly with a fully managed backend.
Key Features
- ✓Flutter Dart widgets compile to native iOS and Android from one codebase
- ✓Firestore real-time document database with offline support
- ✓Firebase Auth with email, Google, Apple, and social provider sign-in
- ✓Firebase Storage for user file and image uploads
- ✓FlutterFire SDK for type-safe Flutter integration with all Firebase services
- ✓Firebase App Check and security rules for client-side access control
When to Use Flutter + Firebase
- →Startup MVPs targeting iOS and Android simultaneously with one development team
- →Social apps requiring real-time feed updates via Firestore listeners
- →Marketplaces and booking apps with user authentication and media uploads
- →Consumer apps where Firebase's free tier covers early-stage usage
- →Mobile developers who want to avoid building a separate API backend
Pros
- Single codebase for iOS and Android with near-native performance
- Firebase's managed backend eliminates server provisioning and maintenance
- Firestore real-time sync enables live updates without WebSocket boilerplate
- Large Flutter and Firebase community with extensive packages and plugins
Cons
- Firebase vendor lock-in: migrating off Firebase data is a significant project
- Firestore query capabilities are limited compared to SQL for relational data
- Firebase costs grow quickly with Firestore read volume at scale
Flutter + Firebase Add-ons
Each addition below extends this stack with a capability the base stack works fine without. None are required: include the ones your product actually needs when building this stack, and skip the rest.
CI/CD Add-ons
Add CI/CD when you want a dedicated pipeline for running tests, linting, or multi-stage builds before a deploy goes out. Many hosting platforms already redeploy automatically on every push on their own — a CI/CD tool adds the most value on top of that by gating the deploy on a passing test suite, and matters even more when the hosting choice does not auto-deploy at all, such as a self-hosted server.
Runs Dart analysis and `flutter test` on every push, directly from the same GitHub repo the code already lives in. Pair with a separate mobile build service (Codemagic, EAS-style pipelines) for the actual store-build and submission steps, since GitHub Actions itself doesn't handle native app packaging or store submission.
These are highlighted picks. To see all the tools, check the CI/CD Pipelines category.
Payments Add-ons
Add payments when the product is ready to charge for subscriptions or one-time purchases.
Adds native payment UI via Stripe's official flutter_stripe SDK (PaymentSheet, Apple Pay, and Google Pay), independent of Firebase. Best suited for physical goods, services, or subscriptions billed outside Apple/Google's own in-app-purchase rules; digital goods sold inside an iOS app still need Apple's StoreKit.
Analytics Add-ons
Add analytics when you want to measure traffic, track visitor behavior, or understand how people actually use the product.
PostHog's official posthog_flutter SDK adds event tracking, session replay, and feature flags to the app, independent of Firebase. It goes further than the Google Analytics for Firebase that FlutterFire already includes, adding session replay and feature flags in the same tool.
These are highlighted picks. To see all the tools, check the Web & Product Analytics category.
Frequently Asked Questions about Flutter + Firebase
How is this different from the Supabase + Flutter stack?
Both stacks use Flutter for the frontend, but the backends are fundamentally different. Firebase uses Firestore, a document database with real-time listeners and no SQL; Supabase wraps PostgreSQL, giving you full relational queries, joins, and the option to self-host. Firebase's real-time sync is built into the database layer and works out of the box; Supabase achieves the same effect through PostgreSQL's realtime subscriptions, which require a bit more configuration. Firebase locks you into Google's managed platform; Supabase lets you export your data as a standard PostgreSQL dump and move to any Postgres host. If the app's data model is naturally relational (users with orders with line items), Supabase fits better. If real-time document sync is the core feature and Google's managed platform is acceptable, Firebase wins.
When do Firestore reads start costing real money?
Firebase's Spark plan includes 50,000 document reads per day for free, which covers prototyping and early-stage apps comfortably. Once the app has active daily users, reads scale quickly: a list view that loads 50 documents per screen, with a user opening 10 screens per session, generates 500 reads per user per session. At 1,000 daily active users, that is 500,000 reads per day, or roughly $9 per month on the Blaze plan. The cost compounds with real-time listeners that re-read documents on every change. Optimizing read patterns (caching, composite documents, pagination with cursors) is the main lever for keeping Firebase costs under control at scale.
How do I handle queries that Firestore cannot express?
Firestore does not support joins, OR conditions across different fields, inequality filters on multiple fields, or arbitrary aggregation queries. When the app needs relational-style queries (for example, "find all orders from users in this city placed in the last week"), the standard approach is to denormalize the data: embed the user's city into each order document so a single-field query works. For queries that denormalization cannot solve, Cloud Functions can run server-side aggregations and write the results back to Firestore as pre-computed documents. This is the main architectural trade-off of choosing Firestore over a SQL database: query simplicity is exchanged for real-time sync and horizontal scaling.
Can I move the app off Firebase later if it outgrows the platform?
Partially. Firebase Auth users can be exported as a JSON file with password hashes and profile data, so user accounts are portable in principle, but the authentication flow must be rebuilt against a new provider (Supabase Auth, Auth0, or a custom solution). Firestore data exports to JSON or CSV, but the document structure rarely maps cleanly to a relational schema, so migrating to PostgreSQL means reshaping the data model, not just dumping and importing. The Flutter UI and business logic are portable since they do not depend on Firebase directly, but every Firestore query, Firebase Auth call, and Cloud Function must be replaced. The migration is feasible but substantial, which is the main reason to evaluate the lock-in trade-off before committing.
Do I need PostHog if Firebase already includes Google Analytics?
Firebase ships with Google Analytics for Firebase at no extra cost, and it covers the standard mobile engagement questions: daily active users, retention cohorts, screen views, and custom events. For most mobile apps, this is sufficient. PostHog adds capabilities that Google Analytics does not offer: session replays (seeing exactly what a user tapped and scrolled through), feature flags for gradual rollouts, and A/B testing tied to product events rather than marketing campaigns. If the app needs product experimentation or detailed user behavior debugging, PostHog earns its place alongside the built-in analytics. If the questions are limited to "how many users" and "which screens," Firebase Analytics alone is enough.
Stacks Related to Flutter + Firebase
FlutterFlow + Firebase
ProjectFlutterFlow visual app builder generating Flutter code, backed by Firebase.
Flutter + SQLite
ProjectFlutter app with SQLite for offline-first local data storage without a backend.
Supabase + Flutter
ProjectFlutter cross-platform app with Supabase for open-source PostgreSQL backend and auth.
Firebase + React
ProjectReact SPA with Firebase as the backend: real-time Firestore and Google Auth without a custom server.
Scores
Tools in the Flutter + Firebase Stack
Frontend Frameworks
Programming Languages
Databases
Authentication
Add-ons (optional — add any, or none)
CI/CD
Payments
Analytics
Flutter + Firebase Pricing
Flutter is free and open source, and Firebase's Spark plan covers prototyping with generous limits on Firestore reads, storage, and authentication at no cost. Production apps typically move to Firebase's Blaze plan, which is usage-based: Firestore reads at $0.06 per 100,000 and writes at $0.18 per 100,000 are the dominant cost drivers, and an app with active daily users can reach $20 to $100 per month on reads alone. Analytics and payments add-ons are free or transaction-based, so the Firebase usage bill is the one number to watch as the app scales.
Flutter and Dart are free to use, including for commercial apps on iOS and Android.
Spark plan is free with generous limits for prototyping; Blaze is pay-as-you-go with Firestore reads at $0.06/100K and writes at $0.18/100K as the main cost drivers.
Firebase includes Google Analytics for free; PostHog adds product analytics with a free tier and pay-as-you-go above 1M events.
Stripe charges 2.9% + $0.30 per successful card transaction on the standard plan, with no monthly fee.