El almacenamiento en caché fuera de línea y la funcionalidad de Reduce de MAP están en desarrollo. Firebase.js La fuente está disponible aquí para desarrollo y depuración.
Puede serializar una instantánea localmente usando exportval Para preservar todos los datos de prioridad. Si no está utilizando prioridades, un valor simple funcionará:
var fb = new Firebase(URL);
fb.once('value', function(snapshot) {
console.log('values with priorities', snapshot.exportVal());
console.log('values without priorities', snapshot.val());
});
Más tarde, si Firebase está fuera de línea (use .info/conectado Para ayudar a determinar esto) Cuando se carga su aplicación, puede llamar .establecer() Para volver a colocar esos datos en la Firebase local. Cuando/si Firebase entra en línea, se sincronizará.
Sin embargo, esto realmente solo es adecuado para datos estáticos a los que solo una persona accederá y cambiará. Considere, por ejemplo, las consecuencias si descargo los datos, los mantengo localmente durante una semana, y está modificado por varios otros usuarios durante ese tiempo, luego cargo mi aplicación fuera de línea, hago un cambio menor y luego me pongo en línea. Mis cambios rancios desanimarían todo el trabajo realizado en el medio.
Hay muchas maneras de lidiar con esto: resolución de conflicto, utilizando reglas de seguridad y actualizar contadores/marcas de tiempo para detectar datos obsoletos y evitar regresiones, pero esto no es un asunto simple y necesita una consideración profunda antes de seguir esta ruta.