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.
--
Completed
--
Lessons completed
Login
to track your course
progress
Introduction
Firebase Pros and Cons
An overview of the Firebase Pros and Cons for Flutter app development, including: supported features and platforms, pricing, portability, vendor lock-in, and developer experience.
Module 1
Firebase Basics
In this module we'll create a simple full-stack app with Flutter and Firebase. As part of this, we'll install the CLI tools, setup a simple authentication flow with the Firebase UI packages, and learn about Cloud Firestore features such as realtime listeners, CRUD operations, security rules, queries, caching, and offline mode.
Module 2
Full-Stack eCommerce app overview
This module offers an overview of the starter project for the eCommerce app, including: app bootstrap code, project structure and feature-first app architecture, utility and helper classes, and how to use repositories as Firebase API wrappers.
Module 3
Firebase Authentication
In this module, we add Firebase Authentication to the eCommerce app by following the feature-first app architecture. As part of this, we implement an AuthRepository as a wrapper for FirebaseAuth, and connect it to the rest of the app.
Module 4
Cloud Firestore and Firebase Storage
In this module we implement a multi-page image upload flow with Firebase. Included: uploading images to Firebase Storage and storing the download URL with Cloud Firestore; adding, editing, and deleting products; user input and validation with complex forms; CORS setup for Firebase Storage images on Flutter web.
Module 5
Firebase Local Emulator and Cloud Functions
In this module we get started with the Firebase Local Emulator and use it to write and test Cloud Functions locally. Also included: importing and exporting data, TypeScript basics, Cloud function triggers and HTTP callable functions, deploying and monitoring Cloud Functions.
Module 6
Role-Based Authorization with Custom Claims
This module is about role-based authorization with Firebase. As part of this, we learn what custom claims are and how to set them inside a Firebase auth trigger, how to enforce security rules based on the Firebase ID token, how to combine custom claims and realtime listeners, and much more.
Module 7
Diving Deeper with Cloud Firestore
This module dives deeper into Cloud Firestore, including topics such as NoSQL data modeling, complex realtime data flows, how to combine values from different Firestore documents using providers, and how to estimate and optimize the cost of your Firebase bill.
Module 8
Checkout Flows with Stripe
This module shows how to build a seamless checkout experience using Stripe. On the client-side, we'll implement separate checkout flows on mobile and web with the Flutter Stripe SDK. On the server-side, we'll use the Stripe extension for Firebase, along with some custom Cloud Functions for order fulfillment, and more.
Module 9
Full-Text Search with Algolia
In this module, we learn how to add full-text search with Algolia, Flutter, and Firebase to our eCommerce app. As part of this, we install the Algolia extension for Firebase, and optimize the client-side code by adding caching, debouncing, and realtime updates.
Module 10
Completing the eCommerce app
In this module, we complete the eCommerce app by deploying it as a Flutter web demo using Firebase Hosting. We also complete the product reviews feature, using Cloud Firestore and Cloud Functions on the backend.
Appendix 1
Common Problems and Solutions
Solutions to common problems including: version conflicts, upgrading dependencies, Cocoapods and Gradle issues.