Чтобы подсчитать непрочитанное сообщение, я создал поле подсчета, и оно работает так:
- set count_unread = 0
- Если new_message: count_unread ++
- Если пользователь присоединяется к чату: установите count_unread = 0
- Если пользователь уже находится в чате, у меня есть прослушиватель, чтобы прослушать изменение базы данных, затем показать сообщение на экране и установить count_unread = 0
Но, как вы знаете, Firebase заряжает каждую команду чтения / записи. Итак, если этот пользователь уже находится в чате, каждое новое сообщение будет создавать 2 записи (установите count_unread +1 и установите count_unread = 0). Есть ли способ оптимизировать его?