【Firebase】Firestoreのサーバータイムスタンプを取得する

Firestoreのサーバータイムスタンプを取得する

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));

【関連情報】firebase.firestore.Timestamp

Firestoreのサーバータイムスタンプを取得する

更新情報はTwitterでも配信しています