Timestamp.now()
генерирует метку времени с использованием часов клиентского компьютера, что может быть неправильно, даже резко неверно.
FieldValue.serverTimestamp()
кодирует маркер в поле документа, которое преобразуется в метку времени с использованием часов на Серверы Google при получении операции записи (не во время, когда она была выдана клиентом). Время на всех службах Google тщательно гарантированно верно, независимо от того, что делает злонамеренный пользователь.
Если вам абсолютно необходимо точное время, особенно такое, которое нужно проверить правила безопасности с использованием request.time , вы должны использовать отметку времени сервера. Если вам нужно время клиента, используйте Timestamp.now()
. Почти всегда так предпочтительна временная метка сервера.