Количество активных пользователей в чате Swift - PullRequest
0 голосов
/ 07 ноября 2018

Я пытаюсь создать приложение для группового чата и хочу реализовать функцию, позволяющую определять количество активных пользователей в чате. Я думал об обновлении базы данных с приведенной ниже структурой, в функциях viewWillAppear и viewWillDisappear. Например, в viewWillAppear я бы обновил текущее значение пользователя в узле чата, а в viewWillDisappear я бы удалил значение пользователя; Тем не менее, мне было интересно, если это самый эффективный способ сделать это, так как это потребует много выборки из базы данных.

active_chatroom_users
    - chatroomId
         - UserId:1
         - UserId:1

1 Ответ

0 голосов
/ 07 ноября 2018

Во-первых, вы не можете использовать viewWill..., потому что это не всегда означает, что произойдет следующее viewDid.... Вместо этого используйте viewDidAppear и viewDidDisappear. Нет проблем с созданием и удалением пользователя в комнате чата каждый раз, когда представление появляется и исчезает, однако вы правы, полагая, что есть кто-то, кто выбирает пользователей комнаты чата для подсчета.

Вы должны вести подсчет самостоятельно, увеличивая и уменьшая каждый раз, когда пользователь добавляется или удаляется из active_chatroom_users. Это может быть сделано на клиенте несколькими способами, один из которых включает транзакции. Это позволит вам обновлять счетчик активных пользователей в режиме реального времени и будет также подсчитывать, что любые другие пользователи, активирующиеся одновременно, также будут учитываться.

Однако я бы предпочел использовать триггер облачной функции, который распознает, когда пользователь становится активным или неактивным в комнате чата, и увеличивает или уменьшает общее количество активных пользователей в комнате чата.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...