Frage

Meine Frage ist eine Follow-up zu dieses Thema. Ich liebe die Einfachheit und Leistung von Firebase aus dem, was ich bisher gesehen habe.

Wie ich verstehe, synchronisiert Firebase.js Daten -Snapshots aus dem Server in ein Objekt im JavaScript -Speicher. Derzeit gibt es derzeit keine Funktionalität, diese Daten auf die Festplatte zu speichern.

Als Ergebnis:

  1. Anwendungen müssen beim Start eine Verbindung haben, daher gibt es keinen echten Offline-Zugriff.
  2. Die Bandbreite wird jedes Mal verschwendet, wenn eine App beginnt, indem sie alle früheren Daten neu überträgt.

Da die Snapshot -Daten als JavaScript -Objekt im Speicher sitzen, sollte es ziemlich trivial sein, sie als JSON als JSON zu serialisieren und in LocalStorage zu speichern, sodass der genaue Anwendungszustand das nächste Mal geladen werden kann, wenn die App gestartet wird, online oder nicht. Aber wie der Code von Firebase.js minifiziert und kryptisch ist, habe ich keine Ahnung, wo ich nachsehen soll.

Pouchdb Verarbeitet das sehr gut auf einem CouchDB -Backend. (Aber es fehlt die schnelle Reaktionszeit und Einfachheit von Firebase.)

Also meine Fragen sind:

1. Welche Daten müssten ich serialisieren, um einen Schnappschuss für lokale Storage zu speichern? Wie kann ich das dann wieder in Firebase laden, wenn die App startet?

2. Wo kann ich den ursprünglichen nicht-minifizierten Entwicklerquellcode für Firebase.js herunterladen?

(Übrigens, zwei Merkmale, die Firebase helfen würden, die Konkurrenz aus dem Wasser zu blasen: Offline -Caching und Karte reduzieren.)

War es hilfreich?

Lösung

Offline-Caching und MAP-reduzierte Funktionen sind beide in der Entwicklung. Die Firebase.js Quelle ist hier verfügbar Für Entwickler und Debuggen.

Sie können einen Snapshot lokal mithilfe serialisieren Exportval Erhaltung aller Prioritätsdaten. Wenn Sie keine Prioritäten verwenden, ist ein einfacher Wert ausfällt:

var fb = new Firebase(URL);
fb.once('value', function(snapshot) {
   console.log('values with priorities', snapshot.exportVal());

   console.log('values without priorities', snapshot.val());
});

Später, wenn Firebase offline ist (Verwendung .info/verbunden Um dies zu bestimmen) Wenn Ihre App geladen ist, können Sie anrufen .einstellen() Um diese Daten wieder in die lokale Feuerwehrbasis zu setzen. Wenn/wenn Firebase online kommt, wird es synchronisiert.

Dies eignet sich jedoch nur für statische Daten, auf die nur eine Person zugreifen und sich ändern. Betrachten Sie zum Beispiel den Fallout, wenn ich die Daten herunterlade, sie für eine Woche lokal behalten und von mehreren anderen Benutzern während dieser Zeit geändert wird. Dann lade ich meine App offline, nehme eine kleine Änderung vor und komme dann online. Meine abgestandenen Veränderungen würden alle Arbeiten dazwischen wegblasen.

Es gibt viele Möglichkeiten, dies zu behandeln-die Auflösung der Konflikte, die Verwendung von Sicherheitsregeln und die Aktualisierung von Zähler/Zeitstempeln, um abgestandene Daten zu erkennen und Regressionen zu verhindern-, aber dies ist keine einfache Angelegenheit und benötigt eine tiefe Überlegung, bevor Sie diese Route abrufen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top