Можно ли отменить операции записи в Firestore?

#android #firebase #google-cloud-firestore

#Android #firebase #google-облако-firestore

Вопрос:

Я работаю над приложением для отслеживания местоположения. Я буду обновлять данные о местоположении пользователя в базе данных каждые 10 минут. Например, исходным местоположением является A, конечным местоположением является D.

Если пользователь достиг местоположения B, я обновлю последнее местоположение до B. Предположим, что, когда пользователь достигнет C, а затем D, если произойдет потеря подключения к Интернету, сведения о местоположении C и D не будут сохранены в базе данных.

Тогда, если Интернет работает, он может записать сначала D, а после C местоположение, это не в правильном порядке. таким образом, последним местоположением в базе данных будет C вместо D.

Есть ли какое-либо решение?

Ответ №1:

Нет способа отменить ожидающую запись.

Я могу придумать два варианта:

  1. Используйте транзакцию базы данных и основывайте новое значение для документа на существующем значении.
  2. Используйте правила безопасности, чтобы гарантировать, что разрешены только допустимые переходы. Типичным подходом здесь может быть добавление временной метки (на стороне клиента) к каждой операции записи и отклонение записей, где временная метка слишком старая.