昨日嘗試寫入資料,今天就要把資料拿出來看看了!
Cloud Firestore 有三種方式可以取得資料
一次性取得資料: 只需調用 Cloud Firestore 提供的方法就可以獲取資料,但這種方法不會即時更新資料。
設置監聽器: 這是一個即時更新的方法。當資料發生變化時,應用程序會立即得到通知。
數據包加載: 這是指用外部資源批量導入資料到 Firestore 的方法。如果開發者有一大堆先前存在的資料,並希望將其快速導入 Firestore 時非常有用。
利用 getDoc() 的方式簡單的取得資料,只要定義好資料庫的 collection、subcollection,就可以拿到 Document 裡面的資料瞜
import db from "../db/firebase";
import { doc, getDoc } from "firebase/firestore";
import { onMounted } from "vue";
onMounted(async () => {
try {
const docRef = doc(db, "users", "member");
const docSnap = await getDoc(docRef);
if (docSnap.exists()) {
console.log("Document data:", docSnap.data()); //docSnap.data 可以獲取 Document 的資料
} else {
console.log("No such document!");
}
} catch (error) {
console.error("Error getting document:", error);
}
});
在獲取資料執行 get()
方法,預設是系統會嘗試從 Firestore 資料庫中拿取最新的資料,若應用處於離線狀態或網路請求超時時,會自動用本地的離線緩存作為資料來源。但使用 getDocFromCache()
可以忽略離線緩存並從 Firestore 資料庫中獲取資料,此功能的存在是讓開發者能夠更靈活控制資料的讀取,特別是在考慮到應用的效能和用戶體驗時。例如,如果某些資料經常變動,可能會希望直接從雲端獲取以確保最新資料,但對於不經常變動的資料,則會選擇從本地緩存讀取,以提高速度和效能。