La mise en cache hors ligne et les fonctionnalités de type réduction de la carte sont toutes deux en développement. The Firebase.js La source est disponible ici pour le développement et le débogage.
Vous pouvez sérialiser un instantané localement en utilisant exportval pour préserver toutes les données de priorité. Si vous n'utilisez pas les priorités, une valeur simple fera l'affaire:
var fb = new Firebase(URL);
fb.once('value', function(snapshot) {
console.log('values with priorities', snapshot.exportVal());
console.log('values without priorities', snapshot.val());
});
Plus tard, si Firebase est hors ligne (utilisez .info / connecté Pour aider à déterminer cela) lorsque votre application est chargée, vous pouvez appeler .Positionner() pour remettre ces données dans la base de feu locale. Lorsque / si Firebase est mis en ligne, il sera synchronisé.
Cependant, cela ne convient vraiment qu'aux données statiques auxquelles une seule personne accédera et changera. Considérez, par exemple, les retombées si je télécharge les données, gardez-la localement pendant une semaine, et elle est modifiée par plusieurs autres utilisateurs pendant cette période, puis je charge mon application hors ligne, apporte une modification mineure, puis je viens en ligne. Mes changements marqués souffleraient tout le travail effectué entre les deux.
Il existe de nombreuses façons de faire face à cela - conflit la résolution, en utilisant des règles de sécurité et en mettant à jour les compteurs / horodatages pour détecter les données périmées et empêcher les régressions - mais ce n'est pas une affaire simple et nécessite une profonde considération avant de descendre cette voie.