Estoy tratando de encontrar la mejor manera de habilitar la persistencia de Firestore y ajustar el tamaño del caché usando AngularFire.
La documentación de Firebase sugiere que lo hagamos así:
firebase.firestore().settings({ cacheSizeBytes: firebase.firestore.CACHE_SIZE_UNLIMITED });AngularFire no menciona el ajuste de dicha configuración, pero al profundizar en el código parece que puede pasar un objeto de tipo "firebase.firestore.PersistanceSettings" como tal:
AngularFirestoreModule.enablePersistence({ experimentalForceOwningTab: true, synchronizeTabs: true, }),Sin embargo, esas son las únicas dos propiedades permitidas en el tipo PersistanceSettings.
Intenté crear un constructor en app.module.ts y hacer las cosas de acuerdo con la documentación de Firebase, pero ni siquiera estoy seguro de si funciona.
export class AppModule { constructor() { firebase.firestore().settings({ cacheSizeBytes: firebase.firestore.CACHE_SIZE_UNLIMITED, }); } }¿Cómo verifico cuál es la configuración del tamaño de caché en tiempo de ejecución? ¿Lo estoy haciendo bien?
CACHE_SIZE_UNLIMITED es -1 , a configurar preferentemente en app.module.ts :
const settings: firebase.firestore.Settings = { cacheSizeBytes: firebase.firestore.CACHE_SIZE_UNLIMITED }; firebase.firestore().settings(settings); No parece haber un método para leer la settings ... cacheSizeBytes ya se conoce.
Y probablemente tampoco se pueda cambiar el valor de cacheSizeBytes , una vez que se haya conectado.
Buscando en la documentación de AngularFire, encontré su documento relacionado con el almacenamiento fuera de línea. Explica cómo habilitar la persistencia de archivos en su aplicación y también que puede probar si un documento se recupera del caché o Firestore usando la propiedad fromCache .
Para verificar si está recibiendo datos del servidor o del caché, use la propiedad fromCache en SnapshotMetadata en su evento de instantánea. Si fromCache es verdadero, los datos provienen del caché y pueden estar obsoletos o incompletos. Si fromCache es falso, los datos están completos y actualizados con las últimas actualizaciones en el servidor.
En cuanto a la configuración del tamaño de caché para Firestore, parece que la única forma es lo que ha estado intentando y es una variable establecida en las propiedades de la instancia de Firestore. Aquí hay muestras completas de la documentación relacionada con la configuración del tamaño de caché y la habilitación de la persistencia .