延續上一篇,今天繼續研究 Firestore Database 的資料操作,
溫馨提醒:以下內容看到的
showNotify
是我個人封裝使用的提示彈窗,並不是 Firebase 的功能。有需要的話,可以放入自己需要的內容或執行其他處理。
無論是以顧客角度觀看單一店家或服務詳細頁面、或者某一店家要維護相關資料,皆須先在頁面上取得資料並呈現,才有後續的操作,所以先學會如何取得單一資料吧。
import { doc, getDoc } from "firebase/firestore";
import { db } from "../firebase";
react-router-dom
的 useParams
方法取得單一資料 idimport { useNavigate, useParams } from "react-router-dom";
const params = useParams();
useEffect(() => {
async function fetchStore() {
const docRef = doc(db, "listings", params.storeId);
const docSnap = await getDoc(docRef);
console.log("docSnap =>", docSnap)
}
fetchListing();
}, [navigate, params.storeId]);
取得單一筆資料成功後,就可以試試看呼叫更新的 API 了!
import { doc, getDoc, updateDoc } from "firebase/firestore";
import { db } from "../firebase";
react-router-dom
的 useParams
方法取得單一資料 idimport { useNavigate, useParams } from "react-router-dom";
const params = useParams();
updateDoc
裡的第二個值中,使用 object 格式更新要更新的值。async function onSubmit(e) {
e.preventDefault();
try {
const docRef = doc(db, "stores", auth.currentStore.uid);
await updateDoc(docRef, {
一些要更新的值
});
showNotify("success", "更新成功");
} catch (error) {
console.log("error => ", error);
}
};
目前畫面實作先放上一小部分截圖如下圖。明天則會研究如何在 Firebase 裡上傳圖片!