Если вы планируете сделать что-то, что должно быть высокомасштабируемым на Firebase, подготовиться к испытанию огнем. Большинство компаний, которые говорят, что у них есть какая-то интеграция с Firebase, обычно используют ее для небольших проблем, а не для этого технического характера. Это природа может служить, чтобы укусить вас, если вы не опасаетесь этого.
Возьмем, например, получение сообщений для чата. Как вы храните эти сообщения? Firebase предлагает вам сделать это настойчиво. Так и сделайте это. Теперь, как вы назначаете эти сообщения нескольким чатам? Вам нужно указать, какие сообщения принадлежат каждому чату. Но поскольку ваши сообщения плоские, вам нужно сделать запрос для каждого отдельного сообщения.В большом приложении - создание бесчисленных запросов к базе данных каждую секунду может быть опасным. Чтобы решить эту проблему, вы можете разместить сообщения под самим каналом, а затем просто загрузить их путем сортировки по дате.
В принципе, вы найдете много таких проблем. Это потому, что Firebase был разработан как простой, в то время как приложения реального времени часто могут стать комплекса.
Другой недостаток Firebase довольно дорогой по сравнению с традиционной базой данных, и если вы обслуживаете множество клиентов, это может быть довольно неприятным.
Чтение через Рамзи ответ. Теперь вы можете использовать сервис Firebase 'Firestore', который позволяет вам иметь коллекции и коллекции коллекций, - значит, больше не нужно быть абсолютно плоским. –