Я написал TimeValidityCheckUtil
, который определяет, находится ли моментальный снимок от конкретного слушателя в заданный период времени текущего времени устройства. Это имеет следующий метод: checkIfTImeValid
public static boolean checkIfTimeValid(Timestamp dbTimestamp)
{
Timestamp currentTimestamp = Timestamp.now();
Long seconds = currentTimestamp.getSeconds() - dbTimestamp.getSeconds();
if(seconds> 10)
{
return false;
}
return true;
}
Структура базы данных находится в Firestore и выглядит следующим образом:
"ABC"-|
|
|-"documentId"-|
|
|-"some_key" - "string"
|-"timestamp" - timestamp
Вот что происходит, устройство A создает documentId и объект с отметкой времени.
Устройство B прослушивает этот documentId и вызывает checkIfTimeValid
, чтобы проверить, находилась ли операция по документу A в пределах 10 с текущей отметки времени (чтобы проверить, является ли она последней)
Даже если этот процесс происходит мгновенно, устройство показывает разницу между временными метками как ~ 57-62 с, которая, по моему мнению, не должна превышать 1-5 с.
Почему это происходит?