Flutter & Firebase Masterclass (COMPLETE PACKAGE)

Flutter & Firebase Masterclass (COMPLETE PACKAGE)

English | MP4 | AVC 1920×1080 | AAC 44KHz 2ch | 137 Lessons (11h 38m) | 2.34 GB

Learn about Firebase Auth, Cloud Firestore, Cloud Functions, Stripe payments, and much more by building a full-stack eCommerce app with Flutter & Firebase.

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.

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
  • Firebase Extensions and 3rd party integrations (Stripe and Algolia)
  • How to securely store client-side and server-side API keys
  • Deployment via Firebase Hosting
Table of Contents

1 Welcome
2 Firebase Pros and Cons
3 Firebase Basics- Introduction
4 Starter project overview
5 Creating the Firebase project and installing the CLI tools
6 Configuring the Flutter app with the Flutterfire CLI
7 Introduction to Firebase Auth & Firebase UI Auth
8 Completing the email & password sign in flow
9 Showing the correct page when the app starts with GoRouter.redirect
10 Using authStateChanges() and the refreshListenable argument
11 Refactor- replacing singletons with Riverpod providers
12 Other Firebase Authentication Features- Overview
13 Introduction to Cloud Firestore
14 Installing Cloud Firestore and running on iOS and Android
15 Overview of the jobs page and planned CRUD operations
16 Adding one more route to GoRouter and updating the redirect logic
17 How to add a document with the FirebaseFirestore API
18 Using the FirebaseRepository to add jobs from the UI
19 Showing list items with the FirestoreListView widget
20 Using type-safe model classes
21 Adding update and delete operations
22 Filtering collections with `where`
23 Intro to Firestore security rules
24 Working with timestamps and sorting data
25 Offline mode
26 Pagination and the FirestoreQueryBuilder widget
27 Wrap Up
28 Section Intro
29 VSCode Shortcuts, Extensions & Settings for Flutter Development
30 Course Project on GitHub
31 Cloning the starter project & pubspec.yaml file overview
32 eCommerce app overview
33 Project overview- app initialization and routing
34 Project overview- helper classes and widgets
35 Project structure- features and layers
36 Unidirectional data flow from the data layer to the presentation layer
37 How to add Firebase repositories to the data layer
38 Updated Starter project
39 Section Intro
40 Adding Firebase to the eCommerce app
41 Creating an AuthRepository using the FirebaseAuth APIs
42 The authStateChanges() method and the User class
43 Testing the authentication flows with Firebase
44 Dealing with Firebase auth exceptions
45 Adding the email verification logic
46 Automated testing with FirebaseAuth and wrap up
47 Section Intro
48 Cloud Firestore and Firebase Storage setup
49 Updated starter project
50 Image uploads- plan of attack
51 Creating an ImageUploadRepository
52 Creating an AsyncNotifier to upload images
53 Creating new products as Cloud Firestore documents
54 Completing the image upload logic
55 Adding an ImageUploadService class
56 Adding a watchProduct method to the ProductsRepository
57 Cloud Firestore- realtime listeners vs one-time-reads
58 How to edit existing products- overview
59 Implementing the AdminProductEditController
60 Deleting products
61 Combining streams inside a provider with Rx.combineLatest
62 Image uploads- final tweaks and completed code
63 Basic security rules for the image upload flows
64 Flutter web- adding a CORS policy to a Firebase storage bucket
65 Wrap up & exercises
66 Section Intro
67 Initializing the Firebase Local Emulator Suite with firebase init
68 How to use the Firebase Emulators
69 Exporting and Importing data with the Firebase Emulator
70 Introduction to Cloud Functions and Project Setup with TypeScript
71 TypeScript modules basics + Running our first Cloud Function using npm
72 Writing a Cloud Function Trigger
73 Fixing the infinite loop in the Cloud Function
74 Introduction to HTTP callable functions
75 Writing an HTTP callable function to delete all documents inside a collection
76 Invoking an HTTP callable function from the Flutter client
77 Deploying Cloud Functions with the Firebase CLI
78 Setting a project budget in Google Cloud as a safety net
79 Testing the deployed functions and inspecting the Google Cloud logs
80 Wrap Up
81 Section Intro
82 Introduction to Custom Claims
83 Starter project and Firebase configuration
84 Running the Flutter eCommerce app with the Firebase Local Emulator
85 Writing a Firebase auth trigger to set the custom claims on the server
86 Updating the Security Rules to enable Role-Based Authorization via Custom Claims
87 How to show the admin UI only if the user is an admin
88 How to force-refresh the ID token with a Cloud Firestore Listener
89 Updating the GoRouter redirect code to account for the admin state
90 Deploying and testing the Cloud Function Trigger
91 Wrap Up
92 Section Intro
93 Updated Starter Project with Firebase seed data
94 Implementing a Shopping Cart with Firebase- Overview
95 Cloud Firestore Data Modeling for the Shopping Cart Items
96 Implementing the RemoteCartRepository with Cloud Firestore
97 Testing the Shopping Cart feature with Cloud Firestore
98 Optimizing the Cart Total Calculation with Multiple StreamProviders
99 How to estimate the cost of your Firebase app and minimize your Firebase bill
100 Wrap Up
101 Section Intro
102 How to collect payments on mobile- Stripe or IAP
103 Introduction to Stripe
104 Overview of the Flutter Stripe package and example app
105 Payment flows with Stripe- conceptual overview
106 Updated starter project & Flutter Stripe SDK setup
107 Installing the Stripe Extension for Firebase
108 Configuring the webhook for the Stripe Extension
109 Creating products in the Stripe dashboard
110 Adding new Cloud Function triggers to synchronize the Stripe data with Firestore
111 Deploying and testing the new Cloud Functions
112 Explaining the relationship between Stripe Customers and Firebase Users
113 Demo- making payments on the client (mobile and web)
114 Overview of the client payment flows on mobile
115 Overview of the client payment flows on Flutter web
116 How to fulfil orders on the backend
117 Showing the updated orders page in the Flutter app
118 How to set and use the Stripe Secret Key with Cloud Functions
119 Updating the available quantity on the Stripe product metadata
120 Wrap Up
121 Section Intro
122 Overview of the Firebase Extensions for Full-Text Search
123 Installing the Algolia Extension for Firebase
124 Updated starter project and code walkthrough
125 Adding the Algolia API keys to the Flutter project
126 Implementing Products Search with Algolia
127 Removing the loading indicator for a better search UX
128 Using realtime updates when the query is empty
129 Using caching and debouncing to make fewer API calls
130 Wrap Up
131 Section Intro
132 Starter project and code walkthrough
133 Implementing the ReviewsRepository
134 Calculating the average rating score with Cloud Functions
135 Deploying the Flutter web app with Firebase Hosting
136 Updating the CORS policy for the deployed Flutter web app
137 Conclusion

Homepage