Group Chat App with Firebase that supports video calls with flutter
Flutter Group Chat App with Firebase
A complete Flutter Group Chat App with Firebase that supports video calls. It handles typing, received and read indicators, Group Management, closed app and opened app notifications, security, account creation, login, mutex for generating the numeric Agora UID and more.
- Firebase Cloud Messaging (FCM) is used to send push notifications when the user sends a new message or joins a video call.
- Firebase Cloud Functions: The backend that handles the Agora token request so the user can join the call. It also runs triggers when a Firestore document changes, like sending push notifications when a new message is created.
- Video Calls are handled with Agora, the package
agora_rtc_engineis used to handle video calls,
agora_uikitis used for the video call screen layout.
- Firestore Security Rules:
firestore.rulesfile contains rules like: only admins can add users to the group, users can only see public data of other users, etc.
- Firestore Indexes:
firestore.indexes.jsonfile contains the Firestore indexes.
|All other features
To get started, open the terminal in the
Go to your Firebase project > Click on the Engine ⚙️ button right to “Project Overview” > Copy your Project ID Follow the instructions of Add Firebase to your Flutter app and run these two commands inside the
flutter_app folder, replace
paste-your-project-id-here with your own Project ID.
dart pub global activate flutterfire_cli
flutterfire configure --project=paste-your-project-id-here
Go to your Firebase Console > Build > Authentication > Get Started > Sign-in method > Email/Password and enable Email/Password and save it.
Go to your Firebase Console > Build > Firestore Database > Create database. You can choose any option (
Start in production mode or
Start in test mode), it’s not important because we will update the security rules in the following steps.
Step 2: Push notifications (optional)
iOS and Web platforms require additional configuration for Firebase Cloud Messaging (FCM), so you can show push notifications when a user receives a new text message.
A vapidKey is required for web.
- Get your vapidKey on the Firebase Console, you can check the instructions here.
- Go to the file
- Replace the value of
_vapidKeyForWebwith your own vapidKey
Set the environment on the
- Copy the values from
webfield in the
- Paste the values in the
Step 3: Video Calls (optional)
- Create your Agora account, go to the projects page and click on “Create a Project”
- Under “Authentication” choose the Secured mode: APP ID + Token (Recommended) option
- Copy the App ID value and save in your notepad so that we can use later
- Click on “Configure”
- On “App Certificate”, copy the Primary Certificate value as well
- Go to
functions/environment.tsand set the Agora App ID and App Certificate.
- Go to
flutter_app/lib/environment.dartand set only the Agora App ID there.
⚠️ Do not expose your App Certificate
Step 4: Deploying
npm install -g firebase-toolsto install the Firebase CLI
firebase use --addand select your Firebase project, add any alias you prefer
- Optional: In case you prefer not deploying to web, go to
firebase.jsonfile and remove the
- And finally, run
firebase deploy, so the firestore security rules will be updated, cloud functions and indexes will be created.
Getting in touch
Feel free to open a GitHub issue about:
- ❔ questions
- 💡 suggestions
- 🐜 potential bugs
You can check out the entire code of this App here:
Get Full Source Code
This was all about a quick go through the basic flutter App UI Screen. If you need any assistance regarding flutter app development, you can consult a flutter developer from FlutterDesk. We would love to be of help. Still, if you feel any difficult while dealing with Flutter app development projects, you can reach out to us or hire Flutter developers to outsource any of your app development project.
Do like & share my Facebook page. if you find this post helpful. Thank you!!
Happy coding! 😉
- How to Install Flutter in windows 10
- Quiz App using flutter with source code
- Flutter music app Search all audio files in android phone
- Flutter NEWS App with REST APIs source code
- Chat GPT Voice Chatbot App with Flutter source code
- Make News and Weather App using flutter
- A Book library App with Flutter source code
- A Flutter MCQ quiz app with firebase google login
- Message Chat App with Firebase using flutter
- Flutter BottomNavigationBar Example UI with source code
- A Messenger App UI using Flutter source code
- A Responsive flutter onboarding UI screen
- A Flutter simple social media app UI source code
- A Flutter Air Ticket Booking UI source code
- Pulse animation for Flutter with source code
- Flutter Ecommerce App built with bloc state management