Я пишу приложение для чата, в котором мне нужно проверить, был ли у двух пользователей u1
и u2
предыдущий разговор или нет.Если они есть, то получите conversationId
и отправьте сообщения этой конечной точке.В противном случае создайте новый диалог.
Моя структура данных выглядит примерно так.
userconversations:
userId1:
conversationID1:
participants:
user1: true
user2: true
conversationID2:
participants:
user1: true
user7: true
В моем приложении я хочу прочитать все данные из userconversations/userId1
и выполнить итерацию по списку для отображенияесли 1010 * является частью разговора или нет.
Мой вопрос заключается в том, как мне спроектировать свой класс, чтобы быстро десериализовать эти данные и избежать итераций по ним с помощью вызовов getChildren()
?
Если я нормализую данные и сохраню различное отображение conversationId -> participants
, то для каждого размер разговора мне придется запросить этот поток, чтобы получить данные.Учитывая, что у пользователя может быть 100 разговоров, это будет невероятно медленным и ресурсоемким.
Пожалуйста, не стесняйтесь предлагать альтернативные схемы, которые решают мою задачу.