Синхронизация Firestore только diff? - PullRequest
0 голосов
/ 29 апреля 2018

Мне было интересно, как Firestore управляет синхронизацией глубоко вложенных объектов в реальном времени? В частности, он только синхронизирует diff?

Например, у меня есть состояние приложения, которое представляет собой массив из 3 значений, и это состояние синхронизируется между устройствами. Если я затем изменю одно из значений, будет ли синхронизирован весь новый массив (передан по сети) или только diff? Что если мое состояние является вложенным объектом?

Я спрашиваю, потому что я хочу синхронизировать все состояние, представляющее собой объект с несколькими полями, но я не хочу синхронизировать весь объект, когда меняю только одно поле.

1 Ответ

0 голосов
/ 29 апреля 2018

Как и база данных реального времени, Cloud Firestore использует синхронизацию данных для обновления данных на любом подключенном устройстве. Однако он также предназначен для эффективного выполнения простых одноразовых запросов.

Запросы индексируются по умолчанию: производительность запросов пропорциональна размеру вашего результирующего набора, а не вашего набора данных.

Cloud Firestore отправит только ваше устройство только разницу документа.

Советы: Добавьте запросы, чтобы ограничить данные, которые возвращают ваши операции прослушивания, и используйте прослушиватели, которые загружают только обновления данных.

Разместите слушателей как можно дальше по пути, чтобы ограничить объем синхронизируемых данных. Ваши слушатели должны быть рядом с данными, которые вы хотите, чтобы они получили. Не слушайте корень базы данных, так как это приведет к загрузке всей вашей базы данных. Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...