
Обычно вы в конечном итоге моделируете «чаты» в базе данных. Так что каждый диалог (который пользователи могут видеть при запуске приложения) отображается как отдельный узел в некотором корневом списке. Вы можете отделить основные метаданные каждого разговора от его фактических сообщений и его участников.
Так:
Chats
chat1
title: "...."
lastUpdated: ...
chat2
title: "...."
lastUpdated: ...
Messages
chat1
message1: { ... }
message2: { ... }
chat2
message3: { ... }
message3: { ... }
Participants
chat1
userid1: true
userid2: true
chat2
userid1: true
userid3: true
userid4: true
userid5: true
Используя одни и те же ключи (chat1, chat2) для узлов в каждом списке, вы можете легко найти данные для полного чата, когда это необходимо. Но, сохраняя их в отдельных списках верхнего уровня, вы можете лучше защитить приложение и лучше контролировать объем загружаемых данных.
Также см:
Пожалуйста, перечислите свои проблемы и компромиссы, которые вы рассматриваете