2017-06-19 4 views
0

Ich frage mich, ob das Aktivieren der Offline-Unterstützung in den Clients für die Firebase Realtime Database Ihnen Bandbreite spart? Ich frage mich, ob der Firebase-Client beim Start lädt die Datenbank aus dem Speicher und dann weiter und synchronisiert nur die Sachen, die später hinzugefügt wurde? Oder synchronisiert es alles und wenn das nicht funktioniert, Rückfälle zu den Offline-Daten, die er zuvor gespeichert hat.Speichern der Bandbreite für Firebase Realtime Database durch Aktivieren der Offline-Unterstützung

Antwort

0

Ich sprach heute bei Google Next Amsterdam mit einem Googler und er bestätigte die Theorie, die ich habe. Wenn Sie Offline-Support in Ihrer App aktiviert haben und vom Offline- in den Online-Status wechseln, synchronisiert Firebase Ihre Datenbank auf die klügste Weise. Das heißt, wenn es möglich ist, werden nur die geänderten Werte gesendet. Wenn Sie also die Offline-Unterstützung aktivieren, sparen Sie Bandbreite.

+0

Meiner Meinung nach ist es korrekt, was Sie gerade gesagt haben: 'Firebase synchronisiert Ihre Datenbank auf die klügste Weise. ' Aber wie ich bereits erwähnt habe, wenn Sie wieder online sind, werden nur die Änderungen, die Sie gemacht haben, während Sie offline waren, auf 'Firebase-Servern' aktualisiert. Aber sagen wir gehen offline, um die gleiche Bandbreite zu sparen, ist meiner Meinung nach falsch: | –

+0

Ich stimme zu, dass Sie nicht offline gehen sollten, um Bandbreite zu sparen. –

+0

Bitte sehen Sie meine aktualisierte Antwort. Hoffe, ich war klar genug. –

1

Wenn Sie FirebaseDatabase.getInstance().setPersistenceEnabled(true); verwenden, bedeutet dies, dass Sie Ihre Datenbank abfragen können, auch wenn Sie offline sind. Dies geschieht, weil Firebase eine lokale Kopie Ihrer Datenbank erstellt. Jede Änderung, die während des Offline-Vorgangs vorgenommen wird, wird auf Firebase-Servern aktualisiert, sobald Sie wieder online sind. Diese Option wird also nicht verwendet, um Bandbreite zu sparen, ist enable offline capabilities.

Um klarer zu sein, behält jeder Client, der eine Firebase-Datenbank verwendet und setPersistenceEnabled(true) verwendet, seine eigene interne (lokale) Version der Datenbank. Wenn Daten aktualisiert werden, wird zuerst in diese lokale Version der Datenbank geschrieben.

Als Ergebnis werden alle Schreibvorgänge in Firebase sofort lokale Ereignisse auslösen, bevor überhaupt Daten auf den Server geschrieben wurden. Dies bedeutet, dass die App unabhängig von der Internetverbindung weiterhin reagiert.

Sobald die Internetverbindung wieder hergestellt ist, erhalten Sie den entsprechenden aktuellen Serverstatus. Der Firebase-Client synchronizes diese Daten mit den Firebase-Servern und mit anderen Clients, die dieselbe Datenbank verwenden.

Eine andere Sache zu erinnern ist, dass Firebase automatisch connection state verwaltet, um Bandbreite und Batterieverbrauch zu reduzieren. Wenn ein Client keine active listeners, keine ausstehende Schreib- oder onDisconnect-Operationen hat und nicht explizit durch die Methode goOffline getrennt wird, schließt Firebase die Verbindung nach 60 Sekunden Inaktivität.

Als Schlussfolgerung gibt es keinen Unterschied in Bezug auf Bandbreite, wenn wir Offline-Unterstützung aktivieren. Der Vorteil ist, dass wir die Datenbank abfragen und ändern können, auch wenn wir nicht mit dem Internet verbunden sind.

Ich hoffe, es hilft.

+0

Dies beantwortet die Frage überhaupt nicht. –

Verwandte Themen