Flutter Realtime Chat App Plugin 📱💬

A Flutter plugin for building a realtime chat application. This plugin provides an easy-to-use API for developers to implement a chat feature into their Flutter app.

Features ✨

  • Realtime messaging: Send and receive messages in real-time 🚀
  • Push notifications: Receive push notifications for new messages 📩
  • User authentication: Authenticate users with your own backend service 🔒
  • Image support: Send and receive images in chats 📷
  • Group chat: Create group chats and chat with multiple users at once 👥
  • Typing indicators: See when users are typing in a chat ⌨️
  • Read receipts: See when a user has read a message 👀
  • Customizable UI: Customize the look and feel of the chat interface to match your app's branding 🎨

Installation

`flutter pub add chat_app_plugin`

/// Initializes user data with photo. /// /// uid the user ID. /// name the name of the user. /// email the email of the user. /// photo the photo of the user. void inituserdatawithphoto(String uid, String name, String email, String photo)

/// Initializes user data without photo. /// /// uid the user ID. /// name the name of the user. /// email the email of the user. /// /// Returns a Future that completes with the result. Future inituserdatawithoutphoto(String uid, String name, String email)

/// Gets user data. /// /// email the email of the user. /// /// Returns a Future that completes with the result. Future getuserdata(String email)

/// Finds user. /// /// email the email of the user. void finduser(String email)

/// Gets user groups. /// /// Returns a Future that completes with the result. Future getusergroups()

/// Adds a group. /// /// uid the user ID. /// name the name of the user. /// groupname the name of the group. /// groupicon the icon of the group. /// /// Returns a Future that completes with the result. Future addgroup(String uid, String name, String groupname, String groupicon)

/// Adds a group without icon. /// /// uid the user ID. /// name the name of the user. /// groupname the name of the group. /// /// Returns a Future that completes with the result. Future addgroupwithouticon(String uid, String name, String groupname)

/// Adds a report. /// /// uid the user ID. /// uidofusertoreport the ID of the user to report. /// messagetoreport the message to report. /// date the date of the report. /// /// Returns a Future that completes with the result. Future addreport(String uid, String uidofusertoreport, String messagetoreport,String date)

/// Gets group chats. /// /// groupid the ID of the group. /// /// Returns a Future that completes with the result. Future getgroupchats(String groupid)

/// Gets chat chats. /// /// chatid the ID of the chat. /// /// Returns a Future that completes with the result. Future getchatchats(String chatid)

/// Gets group members. /// /// groupid the ID of the group. /// /// Returns a Future that completes with the result. Future getgroupmembers(String groupid)

/// Determines whether the user is joined. /// /// uid the user ID. /// groupid the ID of the group. /// groupname the name of the group. /// /// Returns a Future that completes with the result. Future

/// Leaves a group. /// /// uid the user ID. /// groupid the ID of the group. /// groupname the name of the group. /// /// Returns a Future that completes with the result. Future leavegroup(String uid, String groupid, String groupname)

/// Adds a group chat. /// /// groupid the ID of the group. /// chatmessage the message to add. void addgroupchat(String groupid, Map<String, dynamic> chatmessage)

/// Adds a chat. /// /// uid1 the user ID of the first user. /// firstusername the name of the first user. /// [uid2