
Create a new Flutter project named Buddies, set up Firebase for Android and web, and configure Google sign-in by obtaining the SHA1 key and updating Gradle dependencies.
Initialize Firebase in a Flutter app for web and mobile by configuring credentials, adding Firebase plugins, and enabling Google sign-in and Firestore in the Firebase console.
Design a login UI for a Flutter and Firebase group chat app, organizing pages and services, adding assets and a Google sign-in button, with a loading indicator controlled by isLoading.
Implement Google authentication in a Flutter app using Firebase Auth and Google Sign-In, with a signInWithGoogle function handling tokens, credentials, errors, and a signOut flow.
Build and handle authentication state in a Flutter app using Firebase authentication state changes. Show home or login pages with sign out, Google sign-in, loading indicators, and snackbars.
Set up the Firestore structure with user and group collections and a messages subcollection, then implement a safe insert user data function that checks existence before saving new users.
Build a user model for a Flutter and Firebase group chat app, converting Firestore data to Dart objects and scaffolding search and profile pages.
Fetch user data by user id and display the user's name, email, and profile picture in a drawer widget using a future builder, with profile page navigation and sign out.
Display a user profile page in Flutter by showing the user's image (from Google auth), name, email, and join date using a padded user interface with an app bar.
Create a new group with a floating action button, enter a name in a dialog, save the group in Firestore with id, admin, members, and recent message, and confirm.
Define a group model with admin, group id, name, icon, members, recent message, and public flag, plus a from snapshot factory and a stream to fetch joined groups.
Fetch user joined groups with a stream builder, display results on the home screen, handle loading and empty states, and navigate to the chat screen.
Build a group info page in a Flutter & Firebase chat app to display admin and members, fetch member details with FutureBuilder, and enable exiting the group.
Implement join and exit group functionality by updating the group's members array with array union and array remove, plus a confirmation dialog and navigation flow.
Build a search page with a text field for user queries and a results area to browse groups, enabling join or exit actions directly from the results.
Create a function to generate search keywords from a group name by splitting into words, lowercasing, and extracting letters, storing them in a Firestore keywords field for robust, case-insensitive search.
Implement real-time group search using a stream, map snapshots to group models, fetch all groups when the search is empty, and display results with join or navigate to chat screen.
Build the chat page UI in Flutter by adding a bottom-centered text field and a send button. Prepare the message area with a container and a tap gesture to send.
Create a Flutter and Firebase function to send messages in a group chat, storing messages in the group's messages subcollection with sender id, name, and timestamp, and update recent message.
Create a database function to fetch all group messages via a stream from the group's messages subcollection, ordered by time, and render them in a chat widget with a streambuilder.
Show all the messages in a Flutter and Firebase group chat by rendering sender and message in styled chat bubbles with a reversed list and sent-by-me alignment.
Sign in with Google, search and join groups, create new groups, and chat with others to verify the full Flutter and Firebase based app functions demonstrated in this course.
In this course, I will be teaching you how to create a functional chat application where users can create new groups, search for existing ones, join conversations, and exit groups as needed. The course assumes basic knowledge of Flutter and Firebase, so it's recommended that you have some experience with these technologies before starting.
Here's what you can expect to learn in this course:
Setting up Flutter and Firebase projects.
Allowing users to authenticate with their google account.
Creating a user profile page where users can see their profile picture , email and full name.
Building the main screen of the app where users can see a list of joined groups and create new ones.
Implementing real time search functionality to allow users to find specific groups they're interested in.
Developing the chat functionality, including the ability to send and receive messages within a group.
Implementing the ability to join and exit groups as needed.
Managing data using Firebase Realtime Database, including storing group information, user profiles, and chat messages.
By the end of the course, students will have a thorough understanding of how to build a group-based chat application using Flutter and Firebase that can be deployed to various platforms, including Android, iOS and Web.