Как прослушивать изменения (или получать поток) из вложенных вложенных коллекций?

Я создаю частный чат для своего приложения. В качестве серверной части я выбрал Firestore, и ниже показано, как структурированы потоки чата и сообщения.

privateChats — chatId1 — chatId1 — messageId1, messageId2,…

collection — document — collection — documents

вот скриншот

Я пытаюсь получить снимки всех потоков чата (chatId1, chatId2, …) с их соответствующим сообщением (последний документ / сообщение было отправлено) и отображать их, как показано ниже — см. Экран чата

Я пробовал что-то подобное databaseRef.collection(‘privateChats’).where(‘chatId’, whereIn: chatList).snapshots(); Однако потоки, которые возвращаются из приведенных выше снимков, отслеживают изменения только в тех полях, где существует поле createdAt.

Это дает мне единственную возможность получить индивидуальный снимок для каждого потока чата, подобного этому databaseRef.collection(‘privateChats’).doc(‘chatId1).collection(‘chatId1).snapshots(); databaseRef.collection(‘privateChats’).doc(‘chatId2).collection(‘chatId2).snapshots();, и каким-то образом объединить эти снимки в единый поток (я не знаю как)

Итак, мой вопрос: есть ли способ получить снимки каждого потока чата с помощью всего одного запроса при заданном списке идентификаторов чата? Если нет, то какое решение? Стоит ли мне придумать другую структуру облачного хранилища пожаров? Спасибо,

Источник: ledsshop.ru

Стиль жизни - Здоровье!