brooding_goat
brooding_goat

Reputation: 175

How to know if a message is seen or not

We are displaying list of messages on user message feed. Messages are stored in a feed collection, where its organized by users. We want want track if user has seen the message or not

feed/{user_id}/
              {message_id1: {seen:0,score:0.2}}
              {message_id2: {seen:0,score:0.2}}
              {message_id3: {seen:1,score:0.2}} 

At present we are thinking to update "seen" boolean for a given message if user has seen it. Are there more efficient ways to do this in firebase (e.g. firebase native analytics). Not sure if doing so many writes back efficient

Upvotes: 0

Views: 1667

Answers (1)

Frank van Puffelen
Frank van Puffelen

Reputation: 598765

There are two common ways to track what messages a user has seen:

  1. Keep a flag for each message that the user has seen.
  2. Keep the timestamp/key of the most recent message that the user has seen.

The latter is a lot easier to implement, but relies in the fact users typically read message in order: scrolling from their oldest unread message to the newest message. If that is not the case for you, there's not really a better option than tracking the status for each message (and in a multi-user chat room, for each user too).

Also see:

Upvotes: 1

Related Questions