From 308bfd95cd5caab20d3ac924d871647e45929abc Mon Sep 17 00:00:00 2001 From: "audric.sabatier" Date: Sun, 20 Nov 2022 16:41:41 +0100 Subject: [PATCH] ADD : modify class message to have hashMap --- .../lib/model/message.dart | 26 +++++++++- .../lib/services/message_database.dart | 20 ++++++++ Sources/dafl_project_flutter/pubspec.lock | 49 +++++++++++++++++++ Sources/dafl_project_flutter/pubspec.yaml | 2 + 4 files changed, 95 insertions(+), 2 deletions(-) create mode 100644 Sources/dafl_project_flutter/lib/services/message_database.dart diff --git a/Sources/dafl_project_flutter/lib/model/message.dart b/Sources/dafl_project_flutter/lib/model/message.dart index 65ee12f..79726cd 100644 --- a/Sources/dafl_project_flutter/lib/model/message.dart +++ b/Sources/dafl_project_flutter/lib/model/message.dart @@ -1,8 +1,30 @@ import 'user.dart'; class Message { - User sender; + String idSender; + String idReceiver; String content; - Message(this.sender, this.content); + Message({required this.idSender, + required this.idReceiver, + required this.content + }); + + + Map toHashMap() { + return { + 'idSender': idSender, + 'idReceiver': idReceiver, + 'content': content, + }; + } + + + factory Message.fromMap(Map data){ + return Message( + idSender: data['idSender'], + idReceiver: data['idReceiver'], + content: data['content'], + ); + } } diff --git a/Sources/dafl_project_flutter/lib/services/message_database.dart b/Sources/dafl_project_flutter/lib/services/message_database.dart new file mode 100644 index 0000000..3f477d2 --- /dev/null +++ b/Sources/dafl_project_flutter/lib/services/message_database.dart @@ -0,0 +1,20 @@ +import 'package:dafl_project_flutter/model/message.dart'; +import 'package:cloud_firestore/cloud_firestore.dart'; + + +class MessageDatabase{ + + + void SendMessage(String chatId, Message message) { + var documentReference = FirebaseFirestore.instance + .collection('messages') + .doc(chatId) + .collection(chatId) + .doc(DateTime.now().millisecondsSinceEpoch.toString()); + + FirebaseFirestore.instance.runTransaction((transaction) async { + transaction.set(documentReference,message.toHashMap()); + }); + } + +} \ No newline at end of file diff --git a/Sources/dafl_project_flutter/pubspec.lock b/Sources/dafl_project_flutter/pubspec.lock index 463407f..64390f1 100644 --- a/Sources/dafl_project_flutter/pubspec.lock +++ b/Sources/dafl_project_flutter/pubspec.lock @@ -1,6 +1,13 @@ # Generated by pub # See https://dart.dev/tools/pub/glossary#lockfile packages: + _flutterfire_internals: + dependency: transitive + description: + name: _flutterfire_internals + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.9" animations: dependency: "direct main" description: @@ -71,6 +78,27 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.1.1" + cloud_firestore: + dependency: "direct main" + description: + name: cloud_firestore + url: "https://pub.dartlang.org" + source: hosted + version: "4.1.0" + cloud_firestore_platform_interface: + dependency: transitive + description: + name: cloud_firestore_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "5.9.0" + cloud_firestore_web: + dependency: transitive + description: + name: cloud_firestore_web + url: "https://pub.dartlang.org" + source: hosted + version: "3.1.0" collection: dependency: transitive description: @@ -148,6 +176,27 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.0.1" + firebase_messaging: + dependency: "direct main" + description: + name: firebase_messaging + url: "https://pub.dartlang.org" + source: hosted + version: "14.1.1" + firebase_messaging_platform_interface: + dependency: transitive + description: + name: firebase_messaging_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "4.2.7" + firebase_messaging_web: + dependency: transitive + description: + name: firebase_messaging_web + url: "https://pub.dartlang.org" + source: hosted + version: "3.2.7" flutter: dependency: "direct main" description: flutter diff --git a/Sources/dafl_project_flutter/pubspec.yaml b/Sources/dafl_project_flutter/pubspec.yaml index b11d39c..567ae0d 100644 --- a/Sources/dafl_project_flutter/pubspec.yaml +++ b/Sources/dafl_project_flutter/pubspec.yaml @@ -30,6 +30,8 @@ dependencies: geolocator: ^9.0.2 flutter_styled_toast: ^2.1.3 firebase_core: ^2.3.0 + firebase_messaging: ^14.1.1 + cloud_firestore: ^4.1.0 dev_dependencies: flutter_test: