Flutter & Firebase Masterclass
Learn about Firebase Auth, Cloud Firestore, Cloud Functions, Stripe payments, and much more by building a full-stack eCommerce app with Flutter & Firebase.
Andrea’s Flutter content is amazing - it’s one of the few resources I consistently reference for advanced real-world solutions.
He clearly puts a huge amount of care and thought into every tutorial. Highly recommended!
If you need a backend for your Flutter app, Firebase is the most obvious choice.
Firebase makes it easy to authenticate users, write data to a remote database, and run server-side code securely. And you get scalability and great performance out of the box, without breaking the bank.
But once you start building large-scale apps, things get complicated and you may ask yourself:
- Do I have the right architecture in place?
- Am I structuring my data correctly?
- How can I run complex queries efficiently?
- Are my security rules correct?
- How should I handle errors?
- Will I get a massive Firebase bill and go bankrupt?
In other words - how do you know if you’re doing it right?
Sure, you could read all the docs and watch a ton of tutorials on YouTube - but those often take shortcuts or use examples that are too basic and don't give you the full picture.
As a result, you’re left to learn the hard stuff by trial and error, and that takes ages!
But there's a faster way.
And I can speed up the process for you, by packaging up all my Firebase knowledge and experience into this course.
It's time to
This in-depth course will teach you how to create real-world apps with Flutter & Firebase.
Start with the Basics, Then Dive Deep
We'll kick off by building a simple full-stack app that covers Firebase Auth, Cloud Firestore, basic security rules, and the latest Firebase UI packages.
Then, we’ll go deep and build a complex eCommerce application, complete with backend integration using Cloud Functions and 3rd party integrations like Stripe and Algolia.
Along the way, we’ll cover key topics such as:
- Firebase setup with the FlutterFire CLI
- Authentication flows and role-based authorization
- Data modeling, security rules, and CRUD operations with Cloud Firestore
- Queries, indexes, pagination, caching, and offline support
- Image uploads with Firebase Storage
- Firebase Local Emulator and Cloud Functions with TypeScript
- Firebase cost analysis and optimization
- Deployment via Firebase Hosting
The course contains a variety of code-along videos, along with diagrams and illustrations to help you understand the concepts, as well as full source code, written notes, and additional resources that you can reference later.
Here’s what my past students had to say: 👇
Loved the course and got a lot out of it.
Especially appreciated how Andrea doesn't just show you the "right way" to do things from the start. He shows common errors and pitfalls and how to get around them, and eventually end up at the "right way" with a better understanding of how to actually get there in your own projects.
The course also has a healthy balance of code-alongs for relevant portions and provides you with updated project files throughout, so you don't have to spend hours manually going through every single line of the project.
A BIG BIG THANKS for this course and the others that you will release later in the year.
Its just so much fun to see something new from my favourite GURU (teacher) and the anticipation of its release is so so exciting.
Just looking at the curriculum, it shows how much effort and thought you have put into developing this.
Thank you once again, as I begin this new journey.
Firebase Pros and Cons
An overview of the Firebase Pros and Cons for Flutter app development:
- List of features and supported platforms
- Dart support (client vs server-side)
- Portability & vendor lock-in
- Developer experience
Create a simple full-stack app with Flutter and Firebase:
- Installing the Firebase and FlutterFire CLI tools
- Adding Firebase to a Flutter app
- Simple authentication flow with Firebase UI
- Listening to auth state changes with GoRouter and Riverpod
- Getting started with Cloud Firestore
- CRUD operations and reading realtime data
- Firebase UI for Firestore: FirestoreListView, FirestoreQueryBuilder, Pagination
- Caching and offline mode
- Security rules and finishing touches
Full-Stack eCommerce App Overview
A full overview of the eCommerce starter project:
- Feature-first app architecture with Riverpod
- Using repositories as Firebase API wrappers
- Choosing real vs "fake" repositories with provider overrides
- Configurable app bootstrap code
- Project structure: features and layers
- Modular architecture and Firebase UI tradeoffs
Adding user authentication flows to the app:
- Introduction to Firebase Authentication
- Adding Firebase to the eCommerce app (using FlutterFire CLI)
- Abstracting the FirebaseAuth APIs behind a repository
- Sign in with email and password
- Auth state changes and the User class
- Dealing with FirebaseAuthExceptions
- How to implement email verification
- Automated testing with FirebaseAuth
Cloud Firestore and Firebase Storage
Multi-page image upload workflows with Firebase Storage and Cloud Firestore:
- Overview of the image upload UI screens
- Uploading images with Firebase Storage
- Storing the download URL with Cloud Firestore
- Adding, editing, and deleting products with Cloud Firestore
- Alternative image upload workflows: file picker / image picker
- User input and validation with complex forms
- Firebase error handling
- CORS setup for Firebase Storage images on Flutter web
Module 5 (coming soon)
Firebase Local Emulator and Cloud Functions
Adding custom server-side code with Cloud Functions:
- Adding a local Firebase project with the Firebase CLI
- Working with the Firebase Local Emulator
- Choosing which emulators to run in the Flutter app
- Introduction to Cloud Functions and TypeScript
- TypeScript ESLint configuration
- Writing and testing Cloud Functions locally
- Generating and removing product list data with Cloud Functions
- Deploying Cloud Functions
- Calling https and callable functions from the Flutter app and handling errors
Module 6 (coming soon)
Role-Based Authorization with Custom Claims
Implementing role-based authorization with custom claims:
- Setting custom claims securely with Cloud Functions
- Checking for ID token changes
- Unlocking admin-only features with custom claims
- Checking for admin claims in the GoRouter redirect logic
- Security rules with custom claims
- Securing callable Cloud Functions
Module 7 (coming soon)
Cloud Firestore - Diving Deeper
Diving deeper with Cloud Firestore:
- NoSQL Data modeling
- Working with sub-collections and collection groups
- Cost measurement and optimization
- Queries and indexes
- More practice with CRUD
- Adding shopping cart, product reviews, checkout flows, and more
Module 8 (coming soon)
How to collect payments in the Flutter app:
- Overview of the various payment methods
- Stripe Dashboard and API keys
- Storing API keys securely with Firebase Secrets
- Working with Payment Intents
- Native payment sheets on iOS & Android
- Web payment UI with Stripe.js
- Backend integration with Stripe webhooks
- Securing webhooks with signature verification
- Server-side order fulfillment with transactions
Module 9 (coming soon)
How to implement server-side search with Algolia and Firebase extensions:
- Adding the Algolia extension to the Firebase project
- Indexing product data
- Adding Algolia-powered search to the Flutter app
Module 10 (coming soon)
I plan to add one final, bonus module. I'm not sure what it will cover yet, but it will be based on your feedback and what you would like to learn.
We’ll cover the topics above in great detail, and you won’t be left wondering if your code is secure or if you've structured your database properly.
And when it comes to code quality, we’ll make sure to write clean, maintainable code that’s easy to extend and scale.
The bottom line?
By the end of this course, you'll have the knowledge and skills needed to build full-stack apps with Flutter and Firebase. So don't miss out on the opportunity to fast-track your app development journey. 🔥
Everything's clear. I really love the way you explain, concise but completely understandable. Not a single detail is missed on any topic that is covered, and if so, you always leave references to really useful articles.
No doubt that anyone who take this course will end up with complete and strong Flutter skills.
Great class all the way through!
I enjoyed it and it was well worth my time spent with the project and learning the deep fundamentals of Firebase.
I'm looking forward to the next lessons!
Get the Flutter & Firebase Masterclass
Join 600+ developers who have already decided to advance their skills.
- All 10 modules, totaling 10+ hours of video (4 modules today + rest coming soon)
- Lifetime Access
- All Bonus Articles
- Full Source Code
- Premium Support on Slack
- English Subtitles
- Completion Certificate
- 30 Day Money Back Guarantee
- First 5 modules, totaling 6+ hours of video (4 modules today + rest coming soon)
- Lifetime Access
- Some Bonus Articles
- Full Source Code
- Premium Support on Slack
- English Subtitles
- 30 Day Money Back Guarantee
Team packages are also available. For more info, send me an email at email@example.com.
I spent over 400 hours making this a high-quality course and I'm confident you'll get a lot of value out of it.
But the only way to find out if this course is right for you is on the inside, not on the outside. So you get on the inside and see if it’s true and valuable to you. Then, if it is, that’s when you decide to keep it.
But if you're not happy with it, for any reason, you can reach out within 30 days of purchase to get a full refund. All you have to do is go to firstname.lastname@example.org and tell me “gimme my money back” and you got it, and in short order. My response time is usually 24 hours.
Andrea has some of the highest quality online courses I have seen. He does not gloss over the issues of optimization or best practices that so many other courses do.
You can adapt what you learn from his courses, right into real-world applications!
So far, the course has delivered its promise to teach from a practical and professional perspective for intermediate and advanced users.
Love the tips and the side notes on the lessons.
The content is simply exemplary. If you are interested in creating cross-device apps, then Flutter is a great choice and Andrea's lessons will get you up to speed.
If you care about good architecture, Andrea will help you out with a sensible approach that will make your code readable and maintainable.
I'm starting to realize that I was doing things the wrong way from the beginning.
I'm excited to see that I'm finally learning the best practices for working on a Flutter app, and I'm sure I will become very confident about building the complex app that I need.
Who is this course for?
This is an intermediate to advanced-level course about Flutter & Firebase, and you need to be already familiar with Dart, Flutter, GoRouter, and Riverpod to make the most of it.
We’ll start by building a simple full-stack app so you'll get comfortable with the basics even if you never used Firebase before.
Then, I’ll give you a detailed walkthrough of the complete eCommerce app that was covered in the Flutter Foundations course. And we’ll turn it into a full-stack app, using the Firebase Dart packages on the frontend, and Cloud Functions with TypeScript on the backend.
When adding new features, I'll include most of the UI code beforehand so we can focus on what matters most: learning Firebase.
While this is not strictly required, I recommend you take the Flutter Foundations course before proceeding to this one (you'll be able to purchase both courses together on the checkout page if you wish).
Upcoming - Course #3
Flutter & Firebase in Production
Once you know how to build apps with Flutter & Firebase, you'll want to deploy them to production.
To do that, you'll need to build them for iOS and Android, and automate the process on CI so you don't waste time making releases by hand. And by learning how to setup GitHub Actions with Fastlane and Firebase App Distribution, you'll be able to distribute your apps in a breeze.
But there’s more.
Once your apps are live, you'll want to monitor them with tools like Firebase Analytics and track crashes with Crashlytics or Sentry so you can fix them quickly.
And to facilitate testing, you’ll want to setup multiple flavors and ensure you’re using the correct API keys for each environment.
I’ll cover all these topics in a follow up course about Flutter in Production, which will be released later this year.
Frequently Asked Questions
How much does the course cost?
The Flutter & Firebase Masterclass course costs $109 during the early access period.
Once you proceed to checkout, you'll have the option to add the Flutter Foundations course for an additional $129 ($20 off).
What does early access mean?
The course was first launched for pre-sale in April 2023.
Currently, only the first four modules are available, and for this reason I'm offering a 25% discount.
You'll get access to the remaining modules as soon as they are ready, at no extra cost.
Will you offer discounts in the future?
From time to time (e.g. Black Friday) I offer discounts, however these are very infrequent.
If you want to get value from the course, your best option is to buy today. If you're not satisfied, you can get a refund within 30 days of purchase.
Should I take the Flutter Foundations course before this one?
While this is not strictly required, I recommend taking the Flutter Foundations course before proceeding to this one.
If you wish, you can buy both courses together on the checkout page.
How long is the Flutter & Firebase course?
This course will be over 10 hours long.
Is the course up to date?
Mostly yes. The course will be fully updated to the latest versions of Flutter and Firebase, shortly after the Flutter 3.10 release in May 2023.
I'll continue to keep it up to date in the future.
Will this course cover all the Firebase products?
Firebase is a big platform that includes many different services to build, release, and monitor your apps. And it would be hard to cover them all in a single course.
So here’s a list of topics that are currently not planned for this course:
- Firebase Remote Config
- Firebase Dynamic Links
- Firebase Cloud Messaging
- OAuth providers (Google, Apple, Facebook etc.) and advanced authentication features
I will, however, cover some of these topics in future articles or courses.
Will you cover any backends other than Firebase?
This is not currently planned, though I may create additional courses for other backends in the future.
We will design the Flutter codebase with good separation of concerns, making it easier to adopt a different backend if desired.
Will this course cover server-side Dart?
No. We will write Cloud Functions in TypeScript.
If and when official Dart support is added to Firebase Cloud Functions, I'll update the course to reflect that.
What about payment providers other than Stripe?
Stripe and RevenueCat are the only payment processors with good support for Flutter on iOS, Android, and web.
Since we'll build an eCommerce app to sell physical products, Stripe is the ideal choice.
I may cover other payments providers as part of separate courses in the future.
What if I get stuck? Can I ask questions?
Yes. You can ask questions on the course Q/A or Slack channel. I answer most questions within 24 hours.
Will I get a completion certificate?
Sure do! Once you complete the course this will be issued to you automatically.
I'm a student / I can't afford the course / I live outside the US/EU / do you support Purchasing Power Parity (PPP)?
Unfortunately PPP is not supported by my course platform. If you'd like to request a discount, please fill this form.
I bought the essentials package. Can I upgrade to the complete package?
Sure - email me at email@example.com and I'll send you a coupon that you can use to upgrade to the full package.
What if I don't like the course?
The course comes with a 30 day money back guarantee. If you're not happy with the course, for any reason, you can reach out and I'll issue a full refund.
All you have to do is go to firstname.lastname@example.org and tell me “gimme my money back” and you got it, and in short order. My response time is usually 24 hours.
Do you offer team packages?
Sure thing! I offer team packages at discounted rates.
Email me at email@example.com for all the details.
I have another question!
Sure - email me at firstname.lastname@example.org and I'll reply within 48 hours.
Hello, I’m Andrea
My name is Andrea, I'm a Flutter GDE and I've been writing code professionally for over 12 years. I've been a mobile app developer since 2012, working for startups and big companies.
With my Flutter tutorials and courses, I've helped thousands of students become better developers.
By taking this course, you'll advance your skills and learn how to build full-stack apps with Flutter and Firebase.