#android #firebase #google-cloud-firestore
#Android #firebase #google-облако-firestore
Вопрос:
Я работаю над приложением для отслеживания местоположения. Я буду обновлять данные о местоположении пользователя в базе данных каждые 10 минут. Например, исходным местоположением является A, конечным местоположением является D.
Если пользователь достиг местоположения B, я обновлю последнее местоположение до B. Предположим, что, когда пользователь достигнет C, а затем D, если произойдет потеря подключения к Интернету, сведения о местоположении C и D не будут сохранены в базе данных.
Тогда, если Интернет работает, он может записать сначала D, а после C местоположение, это не в правильном порядке. таким образом, последним местоположением в базе данных будет C вместо D.
Есть ли какое-либо решение?
Ответ №1:
Нет способа отменить ожидающую запись.
Я могу придумать два варианта:
- Используйте транзакцию базы данных и основывайте новое значение для документа на существующем значении.
- Используйте правила безопасности, чтобы гарантировать, что разрешены только допустимые переходы. Типичным подходом здесь может быть добавление временной метки (на стороне клиента) к каждой операции записи и отклонение записей, где временная метка слишком старая.