deleteMessage method
dynamic
deleteMessage({})
Implementation
deleteMessage({
required ChatModal message,
required String messageId,
required String chatId,
required CollectionReference chatCollection,
}) async
{
// String userId =
// message.from == userData!.userId ? message.to : message.from;
customPrint('Deleting message $messageId for ${userData!.userId}');
DocumentSnapshot documentSnapshot = await chatCollection
.doc(chatId)
.collection('messages')
.doc(messageId)
.get();
Map<String, dynamic> data = documentSnapshot.data() as Map<String, dynamic>;
List visibleTo = data['visibleTo'];
if (visibleTo.contains(userData!.userId)) {
visibleTo.remove(userData!.userId);
if (visibleTo.isEmpty) {
documentSnapshot.reference.delete();
customPrint('The message is deleted...removed document');
} else {
data['visibleTo'] = visibleTo;
documentSnapshot.reference.update(data);
customPrint('The message is deleted...removed user id');
}
}
}