昨天我們完成了「情緒日記 Web MVP」,用 localStorage 做到 刷新不會消失。
但 localStorage 有個明顯問題:換電腦或清瀏覽器快取就全沒了,而且完全沒有安全性,任何人都能看到你的日記。
所以今天的目標是:
這樣才能說是一個真正的「日記」App,而不是貼心的記事本 XD
關於 Firebase 的 Authentication 跟 Firestore 建立,這篇就不詳細描述了,詳情請看 Day4
幫我在 React 情緒日記 App 加上 Firestore 與 Auth。
=== 功能需求 ===
1. Firebase 初始化
- import { initializeApp } from "firebase/app"
- import { getAuth, GoogleAuthProvider, signInWithPopup, signOut } from "firebase/auth"
- import { getFirestore, collection, addDoc, getDocs, deleteDoc, doc } from "firebase/firestore"
2. Auth
- LoginPage:提供 Google 登入按鈕
- 登入成功後,切換到 DiaryPage
- DiaryPage 提供「登出」按鈕
3. Firestore
- 結構:users/{uid}/diaries/{entryId}
4. Protected Route
- React Router 設定
- 如果沒有 currentUser → redirect /login
- 有登入 → 顯示日記頁面
Day 13 要補上 日記 CRUD 功能:
除了新增之外,還要能修改或刪除以前的日記,並且讓清單依日期排序。這樣就算覺得某篇日記太羞恥,或想補充內容,都能即時編輯或刪掉。