В целях простоты позволяет сказать, что у меня есть схема Firebase, которая выглядит примерно так:Нужно ли мне тянуть полный список пользователей, чтобы получить случайного пользователя из Firebase?
- USERLIST
- User1
- Возраст - 22
- Пол - М
- user2
- Возраст - 26
- Пол - М
- User3
- Возраст - 20
- Пол - F
- User1
Скажем, я хотел, чтобы получить случайный пользователь из этого списка в пределах желаемого возрастного диапазона и желаемого пола. Сейчас я вынимаю полный список пользователей, отфильтровывая тех, кто не соответствует моим предпочтениям, а затем получает случайного пользователя из тех, которые соответствуют на стороне клиента. Это отлично работает для небольшого числа пользователей, но что, если у меня 10 000 пользователей?
Есть ли способ сделать это, не загружая полный список ВСЕХ пользователей, так как это очень большая пропускная способность. С реляционной базой данных было бы просто просто использовать предложение where, но, поскольку я не могу с Firebase, я предполагаю, что мне нужно сделать все клиентское, что означает получение полного списка данных. Каков правильный подход к минимизации полосы пропускания?
Это действительно то, что я буду делать. Единственное различие заключается в том, что я создавал бы отдельные списки (в Firebase мы часто называем их * indexex *) для каждого фильтра. Таким образом, список «menList» с только идентификаторами мужчин, «womenList» с только женщинами и, если необходимо, «teenList» с только подростками и т. Д. –
Хотя это жизнеспособное решение, есть ли планы по внедрению более простых способов делать что-то вроде получения только первого уровня пути Firebase? Мне кажется негибким требовать создания новых структур баз данных каждый раз, когда вы хотите просматривать данные по-другому. – Marein