Firebase Chatπ₯π¬
βοΈ Getting started
To get started with Firebase, please see the documentation available at https://firebase.flutter.dev/docs/overview
Add Firebase Chat to your project by following the instructions on the install page and start using it:
import 'package:firebase_chat/firebase_chat.dart';
π± Example
Extend your StatefulWidget
class ChatPage extends BaseChat {
ChatPage({
required ChatEntity entity,
}) : super(entity);
@override
_ChatPageState createState() => _ChatPageState();
}
class _ChatPageState extends BaseChatState<ChatPage> {
...
Override Methods and Properties
You can checkout example file
Widget inputBuilder(BuildContext context, ChatInputState state);
Future editAndUpload(Uint8List data);
Future getImage();
Widget get emptyWidget;
Widget get errorWidget;
Widget get loadingWidget;
Color get primaryColor;
Color get secondaryColor;
Models π¦
Peer User π¨
Fields
id
- user Idimage
- user image urlname
- user display name
Constructors
PeerUser({this.id, this.image, this.name})
PeerUser.fromSnapshot(DocumentSnapshot<Map<String, dynamic>> snap)
Chat Entity π©
Fields
mainUser
- logged in userpeers
- Map of users<user ID, PeerUser>
lastMessage
- last sent messagetitle
- name of the chat (You can name group chats, can benullable
)
License βοΈ
Issues and feedback π
If you have any suggestion for including a feature or if something doesn't work, feel free to open a Github issue for us to have a discussion on it.
Libraries
- repositories/activity_repository
- models/activities/activitylog
- presentation/base_chat_page
- presentation/widgets/chat_avatar
- presentation/widgets/chat_content
- models/chat_entity
- cubit/chat_input_cubit
- models/chat_model
- utils/converter
- firebase_chat
- models/activities/image_activity
- presentation/widgets/activities/image_activity_widget
- models
- models/peer_user
- models/activities/status_activity
- models/activities/text_activity
- presentation/widgets/activities/text_activity_widget
- presentation/widgets/typing/typing_animation
- presentation/widgets/typing/typing_section
- presentation/widgets/typing/typing_widget