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

【Firebase】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

五十川 洋平(Yohei Isokawa)

五十川 洋平(Yohei Isokawa)

フロントエンドエンジニア/面白法人カヤックなどのWeb制作会社に勤務したのち、故郷の新潟に戻り独立。JSフレームワークAngularやFirebase、Google Cloud Platformを使ったWebアプリ開発が得意。 また、Udemyのプログラミング解説の講師、writer.appの自主開発や上越TechMeetupの主催などを行っています。

プロフィール

©Copyright 2022 Yohei Isokawa All Rights Reserved.