ADD : controller call Firestore database accesser
continuous-integration/drone/push Build is passing Details

#MSG01/chat_firebase
Audric SABATIER 2 years ago
parent 77de0b8384
commit 27e970a3b9

@ -29,6 +29,10 @@ class Controller {
_messageAccess.sendMessage(message, idSender, idReceiver);
}
Stream<List<Message>> getMessage(String chatId){
return _messageAccess.getMessage(chatId);
}
void save(User userToSave) {
saver.save(userToSave);
}

@ -4,8 +4,10 @@ import 'package:cloud_firestore/cloud_firestore.dart';
class MessageDatabaseServices{
// Make an unique chat ID between 2 client. Look like 'User1-User2'
static String getChatId(String idSender, String idReceiver){
String _getChatId(String idSender, String idReceiver){
// Test to always have the same id
if (idSender.hashCode <= idReceiver.hashCode)
return '$idSender-${idReceiver}';
else
@ -13,8 +15,10 @@ class MessageDatabaseServices{
}
// Send a message from an user to an other
void sendMessage(Message message, String idSender, String idReceiver) {
String chatId = _getChatId(idSender, idReceiver);
String chatId = getChatId(idSender, idReceiver);
var documentReference = FirebaseFirestore.instance
.collection('messages')
@ -27,6 +31,7 @@ class MessageDatabaseServices{
});
}
// Get a message from a snapshot Firestore
Message _getMessage(DocumentSnapshot<Map<String, dynamic>> snapshot) {
var data = snapshot.data();
if (data == null)
@ -35,13 +40,14 @@ class MessageDatabaseServices{
return Message.fromMap(data);
}
// Get a list of messages from Firestore
List<Message> _getAllMessages(QuerySnapshot<Map<String, dynamic>> snapshot) {
return snapshot.docs.map((doc) {
return _getMessage(doc);
}).toList();
}
// Get the massages from Firestore
Stream<List<Message>> getMessage(String chatId) {
return FirebaseFirestore.instance
.collection('messages')

Loading…
Cancel
Save