converse_chat_adapters 1.0.1 copy "converse_chat_adapters: ^1.0.1" to clipboard
converse_chat_adapters: ^1.0.1 copied to clipboard

Firebase-based infrastructure layer for the Converse Chat SDK. Implements repository interfaces from converse_chat_core for chat, user, presence, typing and attachment management.

βš™οΈ Converse Chat Adapters #

pub package GitHub Repo License: MIT

Converse Chat Adapters form the infrastructure layer of the Converse Chat SDK.
They connect the clean domain layer from converse_chat_core to real-world backends like Firebase Firestore, Realtime Database, and Firebase Storage.


πŸš€ Overview #

This package provides Firebase-based repository implementations for the abstract interfaces defined in converse_chat_core.
It handles message persistence, user management, presence tracking, and file uploads.

App / UI
   ↓
Converse Chat SDK
   ↓
Converse Chat Adapters (Firebase, REST)
   ↓
Converse Chat Core
   ↓
Firebase / REST / Custom backend

It includes:

  • πŸ”₯ Firebase Chat Repository β€” sending, receiving, and syncing messages
  • πŸ‘€ Firebase User Repository β€” managing user metadata
  • 🟒 Firebase Presence Repository β€” tracking online/offline users
  • πŸ“Ž Firebase Attachment Repository β€” file and media uploads
  • βš™οΈ Adapter Initializer β€” handles Firebase setup before use
  • 🧩 Collection Helpers β€” centralized Firestore path and collection naming

🧠 Architecture #

Follows the Clean Architecture structure:

+------------------------------+
|  Presentation Layer (UI/SDK) | ← converse_chat_sdk
+------------------------------+
|  Domain Layer (Use Cases)    | ← converse_chat_core
+------------------------------+
|  Data Layer / Adapters       | ← converse_chat_adapters
+------------------------------+
|  Infrastructure (Firebase)   | ← External systems
+------------------------------+

This package provides the concrete implementations of:

  • IChatRepository
  • IUserRepository
  • IAttachmentRepository
  • IPresenceRepository

defined in the core domain layer.


🧩 Key Features #

βœ… Implements all domain repositories from core
βœ… Firebase Realtime Database + Firestore support
βœ… Presence tracking using onDisconnect() (mobile)
βœ… Attachment uploads via Firebase Storage
βœ… Centralized Firestore collection management
βœ… Adapter initializer for clean setup
βœ… Easily replaceable adapters for REST or Supabase backends


🧱 Folder Structure #

lib/
β”œβ”€ converse_chat_adapters.dart        # βœ… Public entrypoint (exports all implementations)
└─ src/
    β”œβ”€ repositories/
    β”‚   β”œβ”€ firebase_chat_repository.dart        # Message send/receive/sync logic
    β”‚   β”œβ”€ firebase_user_repository.dart        # User management
    β”‚   β”œβ”€ firebase_presence_repository.dart    # Online/offline presence
    β”‚   β”œβ”€ firebase_attachment_repository.dart  # File upload/download
    β”‚   └─ ...                                 # (Future) additional integrations
    β”‚
    β”œβ”€ firebase_chat_adapter.dart               # Combines all Firebase repositories
    β”œβ”€ firebase_collections.dart                # Defines Firestore collection names
    β”œβ”€ adapter_initializer.dart                 # Handles Firebase initialization
    └─ ...                                     # (Future) REST or WebSocket adapters

βš™οΈ Initialization Example #

Although converse_chat_sdk initializes adapters automatically,
you can use this package directly for testing or custom setups.

import 'package:converse_chat_adapters/converse_chat_adapters.dart';

Future<void> main() async {
  // Initialize Firebase and adapters
  await AdapterInitializer.initializeFirebase();

  // Create a chat repository instance
  final chatRepo = FirebaseChatRepository();

  // Send a message
  await chatRepo.sendMessage(
    chatId: 'chat_123',
    senderId: 'user_001',
    text: 'Hello world πŸ‘‹',
  );
}

🧰 Installation #

Typically, you don’t install this package directly.
It’s automatically included when using converse_chat_sdk.

However, you can also add it manually for experimental setups:

dependencies:
  converse_chat_adapters: ^1.0.0

Then import it:

import 'package:converse_chat_adapters/converse_chat_adapters.dart';

Package Description
converse_chat_core Core domain models and use cases
converse_chat_sdk Main SDK β€” includes adapters and exposes developer-friendly API

🧠 Topics #

firebase, chat, messaging, realtime, sdk, clean-architecture, flutter, presence, storage, core


πŸͺͺ License #

This project is licensed under the MIT License.


πŸ‘¨β€πŸ’» Author #

Rajendra Bisht
GitHub @rbishtdev

0
likes
130
points
152
downloads

Publisher

unverified uploader

Weekly Downloads

Firebase-based infrastructure layer for the Converse Chat SDK. Implements repository interfaces from converse_chat_core for chat, user, presence, typing and attachment management.

Homepage
Repository (GitHub)
View/report issues

Topics

#chat #sdk #flutter #firebase #adapters

Documentation

API reference

License

MIT (license)

Dependencies

cloud_firestore, converse_chat_core, firebase_core, firebase_database, firebase_storage, flutter, fpdart

More

Packages that depend on converse_chat_adapters