ADD : methods to get messages from Firestore
continuous-integration/drone/push Build is passing Details

TO DO : link to views
#MSG01/chat_firebase
Audric SABATIER 2 years ago
parent 974b046f72
commit 77de0b8384

@ -1,6 +1,6 @@
import 'dart:convert';
import 'package:dafl_project_flutter/model/message.dart';
import 'package:dafl_project_flutter/services/message_database.dart';
import 'package:dafl_project_flutter/firebase_services/message_database_services.dart';
import 'package:flutter/cupertino.dart';
import 'package:http/http.dart' as http;
import '../persistence/database_loader.dart';
@ -15,7 +15,7 @@ class Controller {
static Saver saver = DatabaseSaver();
static Loader loader = DatabaseLoader();
static final Searcher _searcher = DatabaseSearcher();
final MessageDatabase _messageAccess = MessageDatabase();
final MessageDatabaseServices _messageAccess = MessageDatabaseServices();
late BuildContext navigatorKey;

@ -2,7 +2,7 @@ import 'package:dafl_project_flutter/model/message.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
class MessageDatabase{
class MessageDatabaseServices{
String _getChatId(String idSender, String idReceiver){
@ -27,4 +27,26 @@ class MessageDatabase{
});
}
Message _getMessage(DocumentSnapshot<Map<String, dynamic>> snapshot) {
var data = snapshot.data();
if (data == null)
throw Exception("no data in database");
return Message.fromMap(data);
}
List<Message> _getAllMessages(QuerySnapshot<Map<String, dynamic>> snapshot) {
return snapshot.docs.map((doc) {
return _getMessage(doc);
}).toList();
}
Stream<List<Message>> getMessage(String chatId) {
return FirebaseFirestore.instance
.collection('messages')
.doc(chatId)
.collection(chatId)
.snapshots().map(_getAllMessages);
}
}
Loading…
Cancel
Save