отображать пользователя в соответствии с последними чатами в обзоре - PullRequest
0 голосов
/ 09 марта 2020

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

   + Chats 
      +currentuser
        +Reciverid
          +postPushid
            +informations

image of the firebase data

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

Помогите мне организовать в соответствии на идентификаторы пользователей в соответствии с последним временем сообщения в Firebase.

Ответы [ 2 ]

0 голосов
/ 11 марта 2020

Просто добавьте еще один атрибут как отметку времени и сгенерируйте его с помощью команды

long timestamp = System.currentTimeMillis();

. Сохраните его в firebase при загрузке сообщения чата с отрицательным знаком, например

timestamp = -timestamp;

Сейчас в переменную Query просто добавьте this

query.orderByChild("timestamp");

, это выберет наименьшее значение, но положительное значение станет наименьшим отрицательным, и вот как оно получится разрешено .

0 голосов
/ 11 марта 2020

Я уже реализовал ту же логику c. Я сделал другую модель чатов. У меня есть отдельная таблица с пользователями. Отдельная таблица с чатами, где каждый пользователь видит только тех пользователей, с которыми он общался. И у меня есть отдельная таблица для сообщений, где id - это чат. Так что в этом случае это очень удобно и гибко. Вы можете добавлять / удалять поля из каждой модели отдельно. Хотите отметку времени в сообщениях без проблем. Хотите отметку времени в чатах без проблем. Все столы максимум получили два уровня вместо пяти, которые вы получили. Поэтому я бы порекомендовал подумать о реструктуризации БД.

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