Firebase Authenticationには最終ログイン日時が保存されています。
ここでは、その最終ログイン日時を取得して、Firestoreに保存するコードを紹介します。
ポイント
- 最終ログイン日時はuser.metadata.lastSignInTimeから取得すること
- Firestoreに日時を格納するためにはTimestamp()を利用すること(詳細はドキュメント)
コード
初期化する
import { getFirestore, doc, setDoc, Timestamp } from 'firebase/firestore';
import { initializeApp } from 'firebase/app';
import { getAuth, onAuthStateChanged } from 'firebase/auth';
import { FIREBASE_CONFIG } from 'env';
// Initialize Firebase
const app = initializeApp(FIREBASE_CONFIG);
const analytics = getAnalytics(app);
const db = getFirestore(app);
最終ログイン日時を取得する
// ユーザーおよび最終ログイン日時を取得する
const user = //省略。authStateChanged()等で取得
const lastLogin = user.metadata.lastSignInTime;
日時をFirestoreに格納する
// 最終ログイン日時をFirestoreのusersコレクションに格納する
const lastLoginTimeStamp = Timestamp.fromDate(new Date(lastLogin)); //FirestoreのためにTimestamp()を利用して整形する
const docRef = doc(db, 'users', "document_id");
setDoc(docRef, {
last_login: lastLoginTimeStamp
});
この記事の著者
阿部 隼也
Abe Shunya
株式会社プッシュ 代表取締役社長・創業者。東京都出身。横浜市立大学在学中に当社を創業し、SEOなどデジタルマーケティング事業や、ChatGPT入門講座を代表とするプライムアカデミー事業を立ち上げた。技術も好きで、自らコードを書きながらサービスを開発する。
Twitter(X)アカウント