昨天我們讓日記上了 Firestore,並且加上帳號保護,確保只有自己能看到
不過有個問題:日記寫久了總會有幾篇看不下去(或打錯字),如果不能修改或刪除,就太不方便了
所以今天的目標就是把 CRUD 補齊,讓日記能編輯、刪除,而且列表會依日期排序
幫我加上 CRUD 功能(編輯、刪除、排序)。
=== 功能需求 ===
1. 資料結構
- id (uuid)
- date (ISO)
- content (string)
- isDeleted (boolean, 預設 false,用來軟刪除)
2. 列表顯示
- 依日期遞減排序(新到舊)
- 每筆顯示日期 | 摘要前 30 字
- 點選「編輯」可進入編輯模式,修改後存回 Firestore
- 點選「刪除」→ 將 isDeleted 設為 true(而不是直接刪掉)
3. 新增/修改
- 新增日記預設 isDeleted=false
- 編輯時更新 content 與 updatedAt(可選)
4. UI 行為
- 編輯:在列表項目右側有「編輯」按鈕,點擊後切換成 TextArea + 儲存按鈕
- 刪除:在列表項目右側有「刪除」按鈕,點擊後該筆從清單消失(實際是 isDeleted=true)
- 清單只顯示 isDeleted=false 的資料
5. Firestore 整合
- 集合路徑:users/{uid}/diaries/{docId}
- 新增:addDoc()
- 編輯:updateDoc()
- 軟刪除:updateDoc(isDeleted=true)
- 讀取:query where(isDeleted==false),orderBy(date, "desc")
6. 額外需求
- 二次確認刪除(例如 confirm 彈窗)
- 保留「垃圾桶」頁面(只顯示 isDeleted=true 的日記),支援還原/永久刪除
Day 14 要幫日記加上 情緒標籤(開心、難過、生氣…),之後就能用圖表分析自己的心情變化,做出「情緒追蹤儀表板」