2016-02-22 4 views
1

Я пытаюсь сделать чат-приложение, содержащее индивидуальный чат между пользователями и групповым чатом, используя Firebase. И я хотел бы сделать статус чтения для каждого сообщения, теперь проблема, рассмотрит групповой чат есть узелУстановить статус чтения для группового чата с использованием Firebase

> groupId----> 
>   --->messageId 
>     -->userId 
>     -->messageType 
>     -->text 

Мой implimentation походит, если пользователь посылает сообщение в группу, которая будет добавлена ​​в рамках идентификатор группы с узлом идентификатора сообщения и все, кто слушает группу, получит это дочернее сообщение, теперь я хочу сохранить статус для всех, кто прочитал это сообщение. Я могу справиться с этим, сохранив локальный статус. Но если пользователь регистрируется с другого устройства, как я могу это обработать?

+0

Вы должны сделать логическое под MESSAGEID узлом, который хранит запись чтения статуса –

+0

Если группа, имеющая больше членов его не возможное право? –

+0

Я также реализую те же функции в своем приложении. Я реализовал однопользовательский чат, но я столкнулся с проблемами в групповом чате. Не могли бы вы отправить мне схему базы данных вашего приложения? –

ответ

3

Если вы хотите, чтобы отслеживать, был ли пользователь читать каждое сообщение, вам необходимо хранить, что в вашей базе данных:

read_messages_per_user 
    <userId> 
    <messageId>: true 

Это может стать много данных в течение долгого времени. Поэтому более эффективным (но менее конкретным) вариантом является сохранение последнего сообщения , которое пользователь читал.

last_read_messageId_per_user 
    <userId>: <messageId> 
Смежные вопросы