
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.
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.
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 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 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.
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.