Это возможно только в том случае, если у вас есть какое-то указание на то, что находится в кэше / когда документ последний раз обновлялся. В противном случае потребуется, чтобы Firestore прочитал каждый документ, чтобы проверить, был ли он изменен, что повлечет за собой точную стоимость, которую вы пытаетесь избежать.
Так что вам нужно будет иметь поле метки времени в каждом документе это указывает, когда это было последнее обновление, а затем запрашивает только те документы, которые были обновлены с момента последней синхронизации. Firestore не хранит такую информацию автоматически, поэтому вам придется добавить / отследить ее самостоятельно.
Это определенно возможно, но вам придется задуматься, является ли это правильным использованием Firestore. Под локальным кешем понимается только кеш, а не полноценная база данных. Хотя он может выполнять все запросы, которые может выполнять сервер, производительность запросов в локальном кэше действительно ухудшается с размером кэша, в отличие от производительности запросов на сервере.
Обычно вы будете получите лучший ROI, если вы читаете данные, которые вы показываете пользователю, вместо того, чтобы пытаться получить большие объемы данных в локальном кэше.