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

#MSG01/ImplementationFirebaseMessaging
Audric SABATIER 3 years ago
parent dc951b015e
commit 9497713be4

@ -11,14 +11,14 @@ import '../services/database/database_service.dart';
import '../services/position/location.dart';
import 'live_datas.dart';
import 'package:dafl_project_flutter/model/message.dart';
import 'package:dafl_project_flutter/services/messaging/message_database.dart';
import 'package:dafl_project_flutter/services/messaging/message_database_service.dart';
class Controller {
final ApiSpotify _api = ApiSpotify();
late User _currentUser;
final DataBaseService _dataBaseService = DataBaseService();
final LiveData _data = LiveData();
final MessageDatabase _messageAccess = MessageDatabase();
final MessageDatabaseService _messageAccess = MessageDatabaseService();
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 MessageDatabaseService{
String _getChatId(String idSender, String idReceiver) {
if (idSender.hashCode <= idReceiver.hashCode)
return '$idSender-${idReceiver}';
@ -26,4 +26,27 @@ class MessageDatabase {
transaction.set(documentReference, message.toHashMap());
});
}
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