From 35e1aab1543677c750a4ccedf7f79f42ced434f4 Mon Sep 17 00:00:00 2001 From: Stein Milder Date: Fri, 25 Nov 2022 08:57:18 +0100 Subject: [PATCH] feat: delete chat files when deleting chat --- packages/flutter_community_chat/pubspec.lock | 4 ++-- .../lib/flutter_community_chat_firebase.dart | 1 + .../lib/service/firebase_chat_service.dart | 16 +++++++++++++++- .../flutter_community_chat_firebase/pubspec.lock | 2 +- .../example/pubspec.lock | 2 +- .../flutter_community_chat_view/pubspec.lock | 2 +- 6 files changed, 21 insertions(+), 6 deletions(-) diff --git a/packages/flutter_community_chat/pubspec.lock b/packages/flutter_community_chat/pubspec.lock index 45fe399..56115ee 100644 --- a/packages/flutter_community_chat/pubspec.lock +++ b/packages/flutter_community_chat/pubspec.lock @@ -179,7 +179,7 @@ packages: description: path: "packages/flutter_community_chat_interface" ref: HEAD - resolved-ref: f7baf3667f92282c56ef54a874b4ba8ebde9fcd6 + resolved-ref: "8544711a477aa761c8d48a6e5798cd63feb9b6b9" url: "https://github.com/Iconica-Development/flutter_community_chat.git" source: git version: "0.0.1" @@ -188,7 +188,7 @@ packages: description: path: "packages/flutter_community_chat_view" ref: HEAD - resolved-ref: f7baf3667f92282c56ef54a874b4ba8ebde9fcd6 + resolved-ref: "8544711a477aa761c8d48a6e5798cd63feb9b6b9" url: "https://github.com/Iconica-Development/flutter_community_chat.git" source: git version: "0.0.1" diff --git a/packages/flutter_community_chat_firebase/lib/flutter_community_chat_firebase.dart b/packages/flutter_community_chat_firebase/lib/flutter_community_chat_firebase.dart index 8613bd6..8843cf4 100644 --- a/packages/flutter_community_chat_firebase/lib/flutter_community_chat_firebase.dart +++ b/packages/flutter_community_chat_firebase/lib/flutter_community_chat_firebase.dart @@ -40,6 +40,7 @@ class FirebaseCommunityChatDataProvider extends CommunityChatInterface { _chatService = FirebaseChatService( db: db, + storage: storage, userService: _userService, options: firebaseChatOptions, ); diff --git a/packages/flutter_community_chat_firebase/lib/service/firebase_chat_service.dart b/packages/flutter_community_chat_firebase/lib/service/firebase_chat_service.dart index 867dd24..33d0d9d 100644 --- a/packages/flutter_community_chat_firebase/lib/service/firebase_chat_service.dart +++ b/packages/flutter_community_chat_firebase/lib/service/firebase_chat_service.dart @@ -4,6 +4,7 @@ import 'dart:async'; import 'package:cloud_firestore/cloud_firestore.dart'; +import 'package:firebase_storage/firebase_storage.dart'; import 'package:flutter_community_chat_firebase/config/firebase_chat_options.dart'; import 'package:flutter_community_chat_firebase/dto/firebase_chat_document.dart'; import 'package:flutter_community_chat_interface/flutter_community_chat_interface.dart'; @@ -12,11 +13,13 @@ import 'firebase_user_service.dart'; class FirebaseChatService { FirebaseChatService({ required this.db, + required this.storage, required this.userService, required this.options, }); FirebaseFirestore db; + FirebaseStorage storage; FirebaseUserService userService; FirebaseChatOptions options; @@ -233,7 +236,18 @@ class FirebaseChatService { .delete(); } - await db.collection(options.chatsCollectionName).doc(chat.id).delete(); + if (chat.id != null) { + await db.collection(options.chatsCollectionName).doc(chat.id).delete(); + await storage + .ref(options.chatsCollectionName) + .child(chat.id!) + .listAll() + .then((value) { + for (var element in value.items) { + element.delete(); + } + }); + } } } } diff --git a/packages/flutter_community_chat_firebase/pubspec.lock b/packages/flutter_community_chat_firebase/pubspec.lock index 9294c74..4313bb5 100644 --- a/packages/flutter_community_chat_firebase/pubspec.lock +++ b/packages/flutter_community_chat_firebase/pubspec.lock @@ -228,7 +228,7 @@ packages: description: path: "packages/flutter_community_chat_interface" ref: HEAD - resolved-ref: f7baf3667f92282c56ef54a874b4ba8ebde9fcd6 + resolved-ref: "8544711a477aa761c8d48a6e5798cd63feb9b6b9" url: "https://github.com/Iconica-Development/flutter_community_chat.git" source: git version: "0.0.1" diff --git a/packages/flutter_community_chat_view/example/pubspec.lock b/packages/flutter_community_chat_view/example/pubspec.lock index 7fe3f78..048cc60 100644 --- a/packages/flutter_community_chat_view/example/pubspec.lock +++ b/packages/flutter_community_chat_view/example/pubspec.lock @@ -186,7 +186,7 @@ packages: description: path: "packages/flutter_community_chat_interface" ref: HEAD - resolved-ref: f7baf3667f92282c56ef54a874b4ba8ebde9fcd6 + resolved-ref: "8544711a477aa761c8d48a6e5798cd63feb9b6b9" url: "https://github.com/Iconica-Development/flutter_community_chat.git" source: git version: "0.0.1" diff --git a/packages/flutter_community_chat_view/pubspec.lock b/packages/flutter_community_chat_view/pubspec.lock index 2bc26f7..af63070 100644 --- a/packages/flutter_community_chat_view/pubspec.lock +++ b/packages/flutter_community_chat_view/pubspec.lock @@ -179,7 +179,7 @@ packages: description: path: "packages/flutter_community_chat_interface" ref: HEAD - resolved-ref: f7baf3667f92282c56ef54a874b4ba8ebde9fcd6 + resolved-ref: "8544711a477aa761c8d48a6e5798cd63feb9b6b9" url: "https://github.com/Iconica-Development/flutter_community_chat.git" source: git version: "0.0.1"