sendMessageReply method
Implementation
void sendMessageReply(mm.Message partialMessage, String roomId) async {
if (firebaseUser == null) return;
mm.Message? message = partialMessage;
final messageMap = message.toJson();
messageMap.removeWhere((key, value) => key == 'author' || key == 'id');
messageMap['authorId'] = firebaseUser!.uid;
messageMap['createdAt'] = FieldValue.serverTimestamp();
messageMap['updatedAt'] = FieldValue.serverTimestamp();
messageMap['seenBy'] = {
firebaseUser!.uid: FieldValue.serverTimestamp(),
/// Sender has seen the message
};
await getFirebaseFirestore
.collection('${FireChatConst.roomsCollectionName}/$roomId/messages')
.add(messageMap);
// Extract the text content of the message
String lastMessageText = '';
if (message is mm.TextMessage) {
lastMessageText = message.text;
} else if (message is mm.ImageMessage) {
lastMessageText = '📷 Image';
} else if (message is mm.FileMessage) {
lastMessageText = '📄 File';
} else if (message is mm.CustomMessage) {
lastMessageText = 'Custom Message';
}
await getFirebaseFirestore
.collection(FireChatConst.roomsCollectionName)
.doc(roomId)
.update({
'updatedAt': FieldValue.serverTimestamp(),
'lastMsg': lastMessageText
});
}