Firestoreにはタイムスタンプを保存することができますが、
クライアント側からJavaScriptのDateオブジェクト経由で取得する時間がサーバー側の時間とズレが生じやすいという問題があります。
そこでFirebase Admin SDK経由でFirestoreのサーバータイムを取得して管理しましょう。
firebase.firestore.FieldValue.serverTimestamp()
Firebase Admin SDKを利用して、firestoreオブジェクトのFieldValue.serverTimestampメソッドで、Firestoreのサーバータイムを取得することができます。
import admin from 'firebase-admin'; admin.initializeApp(); const timestamp = admin.firebase.firestore.FieldValue.serverTimestamp();
【関連情報】firebase.firestore.FieldValue.serverTimestamp
データ作成時や変更時のタイムスタンプが必要な場合、クライアント側で取得せずにサーバーのタイムスタンプで統一して管理する方法がおすすめです。
Timestampオブジェクトで任意のタイムスタンプを作成する
また、Timestampオブジェクトから任意のタイムスタンプを作成することもできます。
const timestamp = admin.firestore.Timestamp.fromDate(new Date(2018, 7, 24));