Я создаю приложение для iOS с помощью Google Firestore для хранения пользовательских данных, а также некоторых общих данных для приложения. Общие данные меняются не очень часто, поэтому я не хочу тратить впустую чтение на получение этой коллекции (примерно 250 документов), если она не изменилась.
Я создал документ в Firestore, в котором хранится метка времени последнего обновления общих данных. Затем я получаю эту метку времени с сервера и сравниваю ее со значением, хранящимся в UserDefaults. Если он новее локальной версии, я получаю все документы с сервера. В противном случае я запрашиваю кэшированные данные, используя:
self.CollectionReference.getDocuments(source: .cache) { (querySnapshot, queryError) in ..... }
Мне кажется, что мой код должен генерировать только 1 чтение на сервер - когда я запрашиваю документ Timestamp. Однако каждый раз, когда приложение запускается, Google регистрирует примерно 500 операций чтения.
Есть мысли о том, почему мой запрос .cache приводит к вызову на сервер?
Есть какие-нибудь мысли о том, почему получение снимка 250 документов приводит к 500 чтениям?