updateMessage method

void updateMessage(
  1. Message message,
  2. String roomId
)

Updates a message in the Firestore. Accepts any message and a room ID. Message will probably be taken from the messages stream.

Implementation

void updateMessage(types.Message message, String roomId) async {
  if (firebaseUser == null) return;
  if (message.author.id != firebaseUser!.uid) return;

  final messageMap = message.toJson();
  messageMap.removeWhere(
    (key, value) => key == 'author' || key == 'createdAt' || key == 'id',
  );
  messageMap['authorId'] = message.author.id;
  messageMap['updatedAt'] = FieldValue.serverTimestamp();

  await getFirebaseFirestore()
      .collection('${config.roomsCollectionName}/$roomId/messages')
      .doc(message.id)
      .update(messageMap);
}