Как я могу отменить ожидающие записи DocumentReference, когда в автономном режиме? - PullRequest
0 голосов
/ 22 января 2019

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

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

Я пытался отключить постоянный кеш, но это не помогает (это поможет, только если приложение Transmisor умрет, но пока оно живет, позиции кэшируются.в памяти).

Возможно, проблема в том, что мне не следует использовать документы для этой цели, и есть другой механизм Firebase, который позволяет отбрасывать устаревшие данные записи для целей общения в реальном времени

1 Ответ

0 голосов
/ 22 января 2019

Все операции записи, которые выполняются, когда устройство находится в автономном режиме, ставятся в очередь до восстановления соединения с серверами Firebase. К сожалению, нет API, который мог бы помочь вам контролировать, какие операции записи ставятся в очередь, а какие нет.

Самое простое решение, которое я могу придумать, - это использовать Транзакции Firestore , которые в настоящее время не сохраняются на диске и, таким образом, будут потеряны при отключении приложения.

Таким образом, транзакции не поддерживаются для автономного использования, они не могут быть кэшированы или сохранены для дальнейшего использования. Это связано с тем, что транзакция обязательно требует двусторонней связи с сервером, чтобы обеспечить успешное завершение кода внутри транзакции. Таким образом, вы можете использовать транзакцию только в режиме онлайн, поскольку транзакции зависят от сети.

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