pizzacorn_chats 0.0.5
pizzacorn_chats: ^0.0.5 copied to clipboard
Chats reutilizables de Pizzacorn para Flutter y Firebase.
Pizzacorn Chats #
Librería reutilizable de chats para aplicaciones Flutter de Pizzacorn. Incluye
inbox, conversación completa, Firestore, Riverpod, slivers y paginación de
pizzacorn_ui.
Instalación #
dependencies:
pizzacorn_chats:
git:
url: https://github.com/Pizzacorn/pizzacorn_chats
Configuración #
Configura el usuario actual antes de runApp():
ConfigurePizzacornChats(
currentUser: ChatUserModel(
id: firebaseUser.uid,
name: userModel.name,
username: userModel.username,
image: userModel.image,
),
databaseName: 'mi-base-firestore',
title: 'Mensajes',
onSendNotification: (chatModel, chatMessageModel) async {
// Envía aquí la notificación push desde tu backend.
},
);
databaseName es opcional. Si se omite, se usa la base (default).
Abrir el listado #
goTo(context, PizzacornChatPage());
Iniciar una conversación privada #
final ChatModel chatModel = await PizzacornChatsRepository()
.openOrCreatePrivateChat(
otherUserModel: ChatUserModel(
id: userModel.id,
name: userModel.name,
username: userModel.username,
image: userModel.image,
),
);
goTo(context, ChatDetailPage(chatModel: chatModel));
Estructura Firestore #
Chats/{chatId}
Chats/{chatId}/Messages/{messageId}
Cada chat guarda participantIds, los perfiles mínimos embebidos, el último
mensaje y sus timestamps. El inbox consulta por participante y ordena por
modifyAt. Los mensajes se ordenan por createdAt.
Firestore puede solicitar índices compuestos al ejecutar las consultas por primera vez. Usa el enlace generado por Firebase para crearlos.