Última mensagem enviada

Aqui eu vou mostrar como fiz o uso do Map Metadata existente no document de chats, o que eu fiz, e como eu fiz.

O principal que eu vou fazer que utilizei aqui foi o controle de última mensagem enviada em um chat.

O document de Chat já possui uma propriedade que é para ser utilizado nesse caso, porém para que ela de fato funcione, deveria ser criado algumas functions, que ficassem escutando cada envio e atualizando esta variável.

Nesse exemplo, vou mostrar uma maneira de gerenciar isso apenas pelo app.

Após fazer o envio da mensagem para o chat, na mesma função, eu envio um update para este chat, da seguinte maneira:

metadata = metadata?..['lastMessageSent'] = message;

Nesta parte acima, eu mando para a função qual o valor do metadata do chat, e apenas faço a atualização dele, alterando uma prop de nome lastMessageSent, e então faço o update do chat.

FirebaseChatCore.instance.updateRoom(
      types.Room(
        id: chatRoomId,
        type: types.RoomType.direct,
        users: users,
        metadata: metadata,
      ),
    );

Sendo necessário apenas passar qual o id do chat, o type, a lista de usuários que fazem parte deste chat e o novo metadata.

Com isso, quando estou na listagem dos chats, consigo acessar esta varíavel da seguinte maneira:

room.metadata?['lastMessageSent'].toString();

Last updated