Я хочу перенести мое iOS-приложение из CloudKit в Firestore.Большинство архитектурных изменений просты, но есть одно предупреждение, которое я не понимаю, как преодолеть.
В CloudKit я могу сохранить токен изменения на клиенте и передать его функциям CloudKit при получении или сохраненииданные.Во время выборки он гарантирует, что я получаю только те обновления, которые ранее не получал.Во время сохранения, если мой токен изменения не соответствует последнему доступному, операция не будет выполнена, пока я сначала не выполню выборку.В моем случае этот дизайн идеален.
К сожалению, похоже, что такая функциональность недоступна в Firestore.Например, при подключении слушателя к моментальному снимку документа невозможно сказать Firestore: «Вот токен X, соответствующий моему последнему обновлению, и я хочу получать все обновления, следующие за ним».
Iтеоретически мог бы реализовать функциональность токена изменения самостоятельно, используя облачные функции.Проблема, однако, заключается в том, что два устройства могут попытаться выполнить обновление одновременно, и мне нужно было бы найти способ гарантировать, что одно из этих обновлений будет выполнено полностью, прежде чем другое запустится (так, что одно из них завершится с ошибкой «недопустимо»change token ").
Это звучит для меня как обычный шаблон проектирования, но я изо всех сил пытаюсь найти какие-либо идеи относительно того, как правильно его реализовать в Firebase.
Следовательно, я хотел бычтобы спросить вас о том, как мне следует перейти к переносу функциональности «изменить токен» из CloudKit в Firestore.
Обратите внимание, я делаю первые шаги в разработке бэкэнда, поэтому моя терминология далека от идеальной.