Существует два способа установки поля даты в Cloud Firestore:
- Вы указываете значение
Date
для поля, и в этом случае вы полностью определяете, какая дата записана. - Вы указываете
firebase.firestore.FieldValue.serverTimestamp()
, и в этом случае сервер записывает текущую дату.
В API нет способа объединить эти два параметра, вы используете либо один, либо другой.
Поскольку вы комментируете, что хотите сохранить временную метку и смещение, я также буду хранить это поле:
- *
timestamp
, которое позволяет серверу заполнятьсяfirebase.firestore.FieldValue.serverTimestamp()
. offset
поле, которое вы заполняете из приложения со смещением в днях / часах.
Таким образом, вы можете воссоздать эффективную метку времени истечения, комбинируядва поля.
Можно даже добавить третье поле, в котором хранится метка времени истечения, но для этого потребуется дополнительная операция записи.Обычно я делаю это в облачных функциях, чтобы обеспечить полный контроль над полем, а клиенты не могут его подделать.Если вы этого не сделаете в облачных функциях, рассмотрите возможность написания правил безопасности, которые подтверждают это значение, если вычисляемое поле действительно является результатом этих вычислений.