Получить объекты по ключу - PullRequest
0 голосов
/ 10 июня 2018

Я хочу структурировать список участников, который содержит ключи к другим объектам.

Моя текущая структура:

- events
-- 12345678910 // eventKey
--- name
--- participants // contains userIds
---- A123456789: true
---- B123456789: true

- users
-- A123456789 // userId
--- Username: 'NameA'
-- B123456789 // userId
--- Username: 'NameB'

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

Мой вопрос: каков наилучший способ получения пользовательских данных всех пользовательских ключей, на которые есть ссылки?Нужно ли создавать запрос для каждого идентификатора пользователя ?!Или есть лучший способ сохранить ссылки в базе данных?

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 10 июня 2018

Чтобы прочитать пользовательские данные для всех участников определенного события, вам действительно нужно будет прикрепить слушателя для каждого участника.Это не так медленно, как думают многие разработчики, поскольку Firebase передает запросы по существующему соединению .

Но также довольно часто дублируют некоторые данные для каждого участника в каждом из них.событие, так что вы можете отобразить основную информацию об участниках без необходимости читать каждый отдельный узел пользователя.

Например, если вы отображаете имена участников для события, вы можете сохранить имя пользователя вместо true и сохранить сами поиски.Но, конечно, это происходит за счет дублирования данных и необходимости выяснить, следует ли / как поддерживать это в актуальном состоянии.Чтобы узнать больше об основных стратегиях для этого, см.

Еще несколько полезных статей по теме:

0 голосов
/ 10 июня 2018

С вашей текущей структурой вы должны выполнить несколько запросов.

Очень часто в базах данных NoSQL дублируют данные, чтобы избежать необходимости выполнять несколько запросов, подобных этой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...