Я пытаюсь придумать способ спроектировать базу данных firestore таким образом, чтобы это было эффективно. Основная проблема, с которой я столкнулся, - это то, как я должен определять «группы». Допустим, пользователь приглашен в групповой чат, и поэтому клиенту необходимо получить данные для этого группового чата. Должен ли я иметь коллекцию «групп», а затем найти правильный групповой документ? ИЛИ, должен ли я иметь свойство "groups" в пользовательском документе, у которого есть идентификатор для ссылки на группу, которую нужно получить?
В SQL наличие ссылки в таблице групп пользователей было бы очевидным ответом, но насчет пожарного я не уверен. Я не хочу просматривать всю коллекцию групп только для того, чтобы найти группу, в которую пользователь был недавно приглашен. Есть какие-нибудь советы? Кроме того, мой интерфейс находится в React, и я рассматриваю возможность использования метода onSnapshot для подписки на коллекцию (это, по-видимому, лучший способ получать обновления в реальном времени).