#reactjs #firebase #firebase-realtime-database #react-redux
#reactjs #firebase #firebase-база данных в реальном времени #реагировать-redux
Вопрос:
У меня есть база данных firebase в режиме реального времени с полем employee, содержащим более 2000 записей, содержащих сведения обо всех сотрудниках. В моем react-приложении при извлечении списка сотрудников мне приходится сначала извлекать все данные поля employee, чтобы отобразить записи, которые занимают много времени при загрузке.
Есть ли какой-либо способ, чтобы я мог запрашивать только 10 записей employee для 1-й страницы, и при нажатии на следующую страницу он снова извлекает следующие 10 записей, потому что это сокращает время загрузки экранов…
Ответ №1:
Да, конечно, firebase, похоже, предоставляет функцию фильтрации списка.
Вы можете использовать limitToFirst() и startAt(), чтобы реализовать разбивку на страницы и получить ограниченные данные.
Для получения дополнительной информации вы можете обратиться к документам https://firebase.google.com/docs/database/web/lists-of-data#filtering_data
Комментарии:
1. Согласно документам, я прочитал, что если я буду использовать limitToFirst (10), в нем будет отображаться только 10 записей. Теперь, что мне нужно, так это то, что мне будут требоваться данные с 11 по 20, когда я нажимаю на 2 страницы при разбивке на страницы.. Не могли бы вы просто вкратце объяснить мне логин. Это было бы большим удовольствием.
2. Вы можете использовать метод orderByKey (), чтобы сначала отсортировать данные по ключу, затем извлечь первые 10 результатов, сохранить последний ключ результата и затем снова извлечь следующие 10 записей, начиная с сохраненного ключа orderByKey().limitToFirst(10).startAtKey(lastKeySaved), затем повторите последние два шага, пока не получите все записи.