Настройка БД:
- users
- A: { // private user info }
- usersPublic
- A: { // public user info }
- rooms
- 1: { readAccess: ['A'] }
У меня есть компонент, который отображает все rooms
, и я получаю его следующим образом:
useFirestoreConnect(() => [{collection: 'rooms'}] )
Это работает нормально, но я теперь хочу также загрузить информацию из usersPublic
для каждого пользователя в комнатах readAccess
массив.
Я пытаюсь использовать populates
следующим образом:
useFirestoreConnect(() => [{
collection: 'rooms',
populates: [{
root: 'usersPublic',
child: 'A'
}]
}])
Я почти уверен, что моя реализация populates
неверна, и я не понимаю, как именно это сделать.
Я мог бы вернуть кучу других конфигураций запросов для всех пользователей с доступом для чтения как только у меня есть объект комнаты, но это кажется неэффективным, и кажется, что populates
предназначен для решения именно этой проблемы.
Я также открыт для предложений по моделированию структуры БД - вышесказанное имело смысл для меня и предлагает хорошее разделение между информацией о пользователях private / publi c, но может быть способ получше.