From 67df69604bdc2e6707bb5a7eb3d077cbc73717fd Mon Sep 17 00:00:00 2001 From: "audric.sabatier" Date: Fri, 13 Jan 2023 13:23:49 -0500 Subject: [PATCH] ADD : Methods call by the controller and some comments --- .../dafl_project_flutter/lib/controller/controller.dart | 5 +++-- .../lib/services/messaging/message_database_service.dart | 9 +++++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/Sources/dafl_project_flutter/lib/controller/controller.dart b/Sources/dafl_project_flutter/lib/controller/controller.dart index 6d1dbbb..1ba5c82 100644 --- a/Sources/dafl_project_flutter/lib/controller/controller.dart +++ b/Sources/dafl_project_flutter/lib/controller/controller.dart @@ -29,8 +29,9 @@ class Controller { _messageAccess.sendMessage(message, idSender, idReceiver); } - - + Stream> getMessage(String chatId){ + return _messageAccess.getMessage(chatId); + } diff --git a/Sources/dafl_project_flutter/lib/services/messaging/message_database_service.dart b/Sources/dafl_project_flutter/lib/services/messaging/message_database_service.dart index a08ef4c..51f90a0 100644 --- a/Sources/dafl_project_flutter/lib/services/messaging/message_database_service.dart +++ b/Sources/dafl_project_flutter/lib/services/messaging/message_database_service.dart @@ -3,16 +3,20 @@ import 'package:cloud_firestore/cloud_firestore.dart'; class MessageDatabaseService{ - String _getChatId(String idSender, String idReceiver) { + // Make an unique chat ID between 2 client. Look like 'User1-User2' + static String _getChatId(String idSender, String idReceiver){ + // Test to always have the same id if (idSender.hashCode <= idReceiver.hashCode) return '$idSender-${idReceiver}'; else return '${idReceiver}-$idSender'; } + // Send a message from an user to an other void sendMessage(Message message, String idSender, String idReceiver) { String chatId = _getChatId(idSender, idReceiver); + // Get a message from a snapshot Firestore var documentReference = FirebaseFirestore.instance .collection('messages') .doc(chatId) @@ -35,13 +39,14 @@ class MessageDatabaseService{ return Message.fromMap(data); } - + // Get a list of messages from Firestore List _getAllMessages(QuerySnapshot> snapshot) { return snapshot.docs.map((doc) { return _getMessage(doc); }).toList(); } + // Get the massages from Firestore Stream> getMessage(String chatId) { return FirebaseFirestore.instance .collection('messages')