001. Welcome
002. Firebase Pros and Cons
003. Firebase Basics- Introduction
004. Starter project oeriew
005. Creating the Firebase project and installing the CLI tools
006. Configuring the Flutter app with the Flutterfire CLI
007. Introduction to Firebase Auth & Firebase UI Auth
008. Completing the email & password sign in flow
009. Showing the correct page when the app starts with GoRouter.redirect
010. Using authStateChanges() and the refreshListenable argument
011. Refactor- replacing singletons with Rierpod proiders
012. Other Firebase Authentication Features- Oeriew
013. Introduction to Cloud Firestore
014. Installing Cloud Firestore and running on iOS and Android
015. Oeriew of the jobs page and planned CRUD operations
016. Adding one more route to GoRouter and updating the redirect logic
017. How to add a document with the FirebaseFirestore API
018. Using the FirebaseRepository to add jobs from the UI
019. Showing list items with the FirestoreListView widget
020. Using type-safe model classes
021. Adding update and delete operations
022. Filtering collections with `where`
023. Intro to Firestore security rules
024. Working with timestamps and sorting data
025. Offline mode
026. Pagination and the FirestoreQueryBuilder widget
027. Wrap Up
028. Section Intro
029. VSCode Shortcuts, Extensions & Settings for Flutter Deelopment
030. Course Project on GitHub
031. Cloning the starter project & pubspec.yaml file oeriew
032. eCommerce app oeriew
033. Project oeriew- app initialization and routing
034. Project oeriew- helper classes and widgets
035. Project structure- features and layers
036. Unidirectional data flow from the data layer to the presentation layer
037. How to add Firebase repositories to the data layer
038. Updated Starter project
039. Section Intro
040. Adding Firebase to the eCommerce app
041. Creating an AuthRepository using the FirebaseAuth APIs
042. The authStateChanges() method and the User class
043. Testing the authentication flows with Firebase
044. Dealing with Firebase auth exceptions
045. Adding the email erification logic
046. Automated testing with FirebaseAuth and wrap up
047. Section Intro
048. Cloud Firestore and Firebase Storage setup
049. Updated starter project
050. Image uploads- plan of attack
051. Creating an ImageUploadRepository
052. Creating an AsyncNotifier to upload images
053. Creating new products as Cloud Firestore documents
054. Completing the image upload logic
055. Adding an ImageUploadSerice class
056. Adding a watchProduct method to the ProductsRepository
057. Cloud Firestore- realtime listeners s one-time-reads
058. How to edit existing products- oeriew
059. Implementing the AdminProductEditController
060. Deleting products
061. Combining streams inside a proider with Rx.combineLatest
062. Image uploads- final tweaks and completed code
063. Basic security rules for the image upload flows
064. Flutter web- adding a CORS policy to a Firebase storage bucket
065. Wrap up & exercises
066. Section Intro
067. Initializing the Firebase Local Emulator Suite with firebase init
068. How to use the Firebase Emulators
069. Exporting and Importing data with the Firebase Emulator
070. Introduction to Cloud Functions and Project Setup with TypeScript
071. TypeScript modules basics + Running our first Cloud Function using npm
072. Writing a Cloud Function Trigger
073. Fixing the infinite loop in the Cloud Function
074. Introduction to HTTP callable functions
075. Writing an HTTP callable function to delete all documents inside a collection
076. Inoking an HTTP callable function from the Flutter client
077. Deploying Cloud Functions with the Firebase CLI
078. Setting a project budget in Google Cloud as a safety net
079. Testing the deployed functions and inspecting the Google Cloud logs
080. Wrap Up
081. Section Intro
082. Introduction to Custom Claims
083. Starter project and Firebase configuration
084. Running the Flutter eCommerce app with the Firebase Local Emulator
085. Writing a Firebase auth trigger to set the custom claims on the serer
086. Updating the Security Rules to enable Role-Based Authorization ia Custom Claims
087. How to show the admin UI only if the user is an admin
088. How to force-refresh the ID token with a Cloud Firestore Listener
089. Updating the GoRouter redirect code to account for the admin state
090. Deploying and testing the Cloud Function Trigger
091. Wrap Up
092. Section Intro
093. Updated Starter Project with Firebase seed data
094. Implementing a Shopping Cart with Firebase- Oeriew
095. Cloud Firestore Data Modeling for the Shopping Cart Items
096. Implementing the RemoteCartRepository with Cloud Firestore
097. Testing the Shopping Cart feature with Cloud Firestore
098. Optimizing the Cart Total Calculation with Multiple StreamProiders
099. 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. Oeriew of the Flutter Stripe package and example app
105. Payment flows with Stripe- conceptual oeriew
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. Oeriew of the client payment flows on mobile
115. Oeriew 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 aailable quantity on the Stripe product metadata
120. Wrap Up
121. Section Intro
122. Oeriew 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. Remoing 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 ReiewsRepository
134. Calculating the aerage 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