markMessagesAsRead method
Mark all unread messages as "read" when the recipient opens the chat
Implementation
Future<void> markMessagesAsRead(String chatId, String currentUserId) async {
QuerySnapshot messages = await _firestore
.collection('chats')
.doc(chatId)
.collection('messages')
.where('receiverId',
isEqualTo: currentUserId) // Messages meant for this user
.where('status', isEqualTo: 'unread')
.get();
for (var doc in messages.docs) {
doc.reference.update({'status': 'read'});
}
// ✅ Reset unread count to 0 when user opens chat
FirebaseFirestore.instance.collection('chats').doc(chatId).update({
'unreadMessageCount.$currentUserId': 0,
});
}