500 - это очень небольшое количество документов. Современные настольные системы не будут иметь проблем с сортировкой и фильтрацией этого списка. Вы можете быть более расстроены счетом из Cloud Firestore за то, что он постоянно сортирует и фильтрует все ваши запросы, чем за счет однократной загрузки и выполнения всего этого локально. Хотя это зависит от поведения пользователей вашего приложения (а также от размера документов и скорости их соединений).
Вы можете наблюдать некоторые проблемы с производительностью, когда получаете 50 000 элементов (на недорогих настольных ПК), но, вероятно, их недостаточно, чтобы причинить кому-либо неудобства. Попробуйте написать несколько строк кода для сортировки или фильтрации 50 000 случайных целых чисел и посмотрите, сколько времени это займет. Ваш реальный код приложения должен работать не так сильно, как реальные данные.
Вам будет еще лучше, если вы сможете кэшировать документы локально, не запрашивая их все снова. Попробуйте добавить поле документа для последнего обновления и запросить только те документы, которые были обновлены с момента последнего запроса. Вы сэкономите еще больше денег и времени.
В конце вы должны сравнить ваши варианты использования, чтобы получить практические данные для работы. Тратьте меньше времени на размышления и больше времени на измерения.