昨天把隱私和加密處理好,今天要補上另一個關鍵功能 —— 匯出/匯入
畢竟日記是很個人的資料,不能只困在雲端,也要能備份、遷移,甚至重新匯入
所以今天的目標就是讓使用者可以把日記資料輸出成 JSON/CSV 檔案,還能在需要時匯入回來
幫我在 React (Firestore + Auth) 的情緒日記 App 加入「匯出/匯入」功能
=== 功能需求 ===
1) 匯出功能
- 從 Firestore 讀取 users/{uid}/diaries
- 輸出為 JSON 與 CSV
- 下載檔案:命名為 diary-YYYYMMDD.json / .csv
2) 匯入功能
- 使用 input type="file" 上傳 JSON/CSV
- 解析後比對日記 id:
- 如果已有同 id → 跳過
- 沒有 → 新增到 Firestore
- 格式:{ id, date, content, sentiment }
3) UI
- 設定頁面加兩個按鈕:「匯出」「匯入」
- 匯入成功/失敗要有訊息提示
4) 技術細節
- 匯出 JSON:用 `JSON.stringify()`
- 匯出 CSV:用 PapaParse 或自己組字串
- 匯入:支援 JSON 與 CSV 解析
Day 20 要來做 PWA 離線模式!
我希望就算在沒有網路的情況下,也能照樣寫日記,等到恢復連線後自動同步到雲端,真正做到「隨時隨地」記錄心情