Ich benutze die Firebase Echtzeitdatenbank in meiner Android App. Ich möchte nur den letzten Eintrag in die Datenbank eingefügt und nicht eine ganze Datenbank sync.Ich mache folgendes.Abfragen bezüglich Firebase Echtzeitdatenbank
FirebaseDatabase.getInstance().getReference("reference").limitToLast(1).addValueEventListener(this);
Hier ist, was ich nicht klar verstehen konnte:
1. Wenn ich ein limitToLast und fügen Sie einen Hörer macht es die gesamten Daten aus der Datenbank in die lokale Kopie herunterladen und gib mir einen Schnappschuss der letzte Eintrag oder lädt es nur den letzten Eintrag herunter?
2.Wenn ich den Listener entferne, stoppt die Synchronisierung zwischen der Echtzeitdatenbank und den lokalen Daten oder die Synchronisierung wird fortgesetzt, aber der onDataChange wird nicht aufgerufen?
3.Der Unterschied zwischen dem Entfernen des Value Event-Listeners und dem Offline-Gehen.
Vielen Dank für die Antwort. Die Registerkarte Verbrauch in meiner Firebase-Konsole zeigt, dass ich ~ 2MB pro Stunde herunterladen, obwohl ich während des Zeitraums keine aktiven Listener habe. Eine Idee, warum das passieren könnte? –
Es ist schwer, von solch begrenzten Informationen zu sagen. Wenn Sie jedoch die Registerkarte "Netzwerk" der Chrome-Entwicklertools überprüfen, können Sie den genauen Datenverkehr im Bereich "WS" (für Web-Sockets) sehen. Wenn Sie mehr Daten herunterladen, als der Suchanfrage entsprechen, haben Sie möglicherweise vergessen, [die Daten indizieren] (https://firebase.google.com/docs/database/security/indexing-data). In diesem Fall wird in der JavaScript-Konsole auch eine Warnung angezeigt. –
Ich habe keine Daten indiziert, aber warum sollte das mehr Daten als nötig herunterladen? –