Будет ли Google Firestore всегда писать на сервер сразу в мобильном приложении с частыми записями? - PullRequest
0 голосов
/ 02 июня 2019

Можно ли ограничить скорость, с которой Google Firestore передает записи, сделанные в приложении, в онлайн-базу данных?

Я изучаю возможность использования Firestore для сохранения потока данных с устройства IoT черезмобильное устройство / блютуз.

Основное беспокойство вызывает стоимость батареи. Получите новый пакет данных примерно через две минуты. Я обеспокоен дополнительным расходом батареи, которое будет стоить подключение к Интернету каждые две минуты, 24 часа в сутки.Я также хотел бы ограничить обновления только для подключений Wi-Fi.

Не важно, чтобы данные были доступны онлайн в режиме реального времени.Однако несколько источников могут добавить один и тот же поток данных в двухстороннем sybc (т. Е. Онлайновая БД и все устройства имеют объединенные данные).

В настоящее время я сам занимаюсь этим, но когда яЯ видел, что Datastore поддерживает автономный режим. Я надеялся, что смогу получить все эти функции бесплатно.

Я знаю, что мы не можем напрямую управлять автономным режимом в Firestore, но есть ли способ предотвратить его постоянное и немедленное нажатиенаписать изменения онлайн?

1 Ответ

1 голос
/ 02 июня 2019

Единственный технический вопрос, который я вижу здесь, связан с тем, как работают пакетные записи, и, что более важно, с затратами. Проще говоря, пакетная запись 100 записей - это то же самое, что запись 100 записей по отдельности. Эта функция не способ избежать затрат на запись в Firestore. То же самое касается транзакций. То же самое для редактирования документа (это запись). Если вы действительно хотите избежать этих затрат, вы можете сохранить значения в течение тридцати минут и позволить клиенту отправлять агрегированные данные в одном документе. Хотя вы упомянули, что вам нужны данные, чтобы быть незамедлительным, поэтому я не уверен, что это вариант для вас. Конечно, это будет зависеть от того, что интерпретируется как «немедленный» как основанный на относительном временном интервале. По моему мнению , (я знаю, что это не разрешено здесь, но это своего рода вопрос), если данные хранятся в течение месяцев / лет, 30 минут - это довольно быстро. В любом случае, пакетные записи не совсем то решение, которое, я думаю, вы ищете.

РЕДАКТИРОВАТЬ: Вы обновили свой вопрос, поэтому я обновлю свой ответ. Вы можете создать локальную кеш-систему и выбрать способ ее обновления. Это полностью зависит от вас и вашего собственного кода. Пишет не совсем автоматически. Поэтому, если вы хотите отправлять только пакет данных каждый час, вы должны отправить его в это время. Вы, вероятно, захотите сделать это в транзакции, если несколько устройств будут записывать в один поток, чтобы одно не перезаписывало другое, если они отправляют одновременно. Кроме этого, я не вижу, чтобы пожарный магазин был проблемой для вас.

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