Если вы используете FieldValue.serverTimestamp()
, это означает, что вы позволили Firestore сгенерировать для вас временную метку. Обратите внимание, что эта временная метка генерируется полностью на сервере. Он не генерируется как идентификаторы документов, например, на клиенте.
Я не могу найти способ рассчитать что-либо, используя его, так как его тип возвращаемого значения - FieldValue, и я не могу проанализировать его в Timestamp.
При вызове метода serverTimestamp () FieldValue тип возвращаемого объекта - FieldValue
, но этот аргумент передавался в качестве аргумента только тогда, когда вам нужно это свойство отметки времени. Пожалуйста, проверьте, как вы можете добавить метку времени в документ Cloud Firestore:
Так что если вы запросите базы данных, и вы получите документ, свойство которого было установлено с помощью FieldValue.serverTimestamp()
, тип возвращаемого объекта - Дата . Поскольку вы получаете объект Date
обратно, вы можете делать с ним все, что захотите.
Однако в базе данных Firebase Realtime у нас есть другой механизм. Пожалуйста, посмотрите этот ответ:
Итак, в в этом случае все совершенно иначе, так как мы используем время с Unix эпохи, в миллисекундах, а не Date
объект.
Edit:
It Похоже, ваш вопрос начался с того, как получить метку времени из Firestore, но на самом деле это просто вопрос о том, как структурировать документ, чтобы два устройства могли читать один и тот же документ. Однако, чтобы это работало, вы должны использовать два свойства типа Date
. Один для устройства A и один для устройства B. Проверьте схему ниже:
Firestore-root
|
--- yourCollection (collection)
|
--- yourDocument (document)
|
--- deviceA: January 24, 2020 at 3:37:59 PM UTC+3
|
--- deviceB: January 25, 2020 at 3:37:59 PM UTC+3 //Timestamp
Чтобы получить значения свойств deviceA
и deviceB
, используйте мой ответ из следующего поста:
Теперь вы можете сравнить обе отметки времени.