I'm new to Firebase and I found getDocsFromCache. I heard that firebase updated it's version to version 9, (modular) and i have to use more than just query.get({source: "cache"})
. But getDocsFromCache
didn't work for me. Every time i call getDocsFromCache
, it does not throw any errors but snapshot.empty
is always true so i can't access to my documents(collection).
If i have to cache manually, how? If not, what am i missing?
Thank you.
import {
collection,
getDocs,
getDocsFromCache,
query,
} from 'firebase/firestore';
import { db } from '../firebase-config';
export const getReviews = async () => {
const q = query(collection(db, 'review'));
try {
const snapshot = await getDocsFromCache(q);
console.log(snapshot.empty); // always true but not throwing any error
snapshot.forEach((doc) => {
/* ... */
});
} catch (e) {
// never reach here
const snapshot = await getDocs(q);
/* ... */
}
};
CodePudding user response:
From the documentation on configuring offline persistence:
For the web, offline persistence is disabled by default. To enable persistence, call the
enablePersistence
method.
So make sure to enable the cache by calling this right after initializing Firebase and Firestore:
import { enableIndexedDbPersistence } from "firebase/firestore";
enableIndexedDbPersistence(db);