Soy nuevo en Firebase y encontré getDocsFromCache . Escuché que firebase actualizó su versión a la versión 9, (modular) y tengo que usar más que solo query.get({source: "cache"}) . Pero getDocsFromCache no funcionó para mí. Cada vez que llamo a getDocsFromCache , no arroja ningún error, pero snapshot.empty siempre es verdadero, por lo que no puedo acceder a mis documentos (colección).
Si tengo que almacenar en caché manualmente, ¿cómo? Si no, ¿qué me estoy perdiendo?
Gracias.
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); /* ... */ } };De la documentación sobre la configuración de la persistencia fuera de línea:
Para la web, la persistencia sin conexión está deshabilitada de forma predeterminada. Para habilitar la persistencia, llame al método
enablePersistence.
Así que asegúrese de habilitar el caché llamando a esto justo después de inicializar Firebase y Firestore :
import { enableIndexedDbPersistence } from "firebase/firestore"; enableIndexedDbPersistence(db);