I Firebase Realtime-Datenbank in meiner app verwenden. Es funktioniert wirklich gut und ich bin sehr zufrieden damit. Aber kürzlich stieß ich auf einen Edge Case, bei dem einige meiner Benutzer ihre Daten verlieren.Firebase Realtime-Datenbank inkonsistentes Verhalten im Offline-Modus
SZENARIO # 1
Der Benutzer meldet sich die App (Firebase-Authentifizierung) mit Internetverbindung auf, und fügt einige Daten in die Datenbank.
Der Benutzer meldet sich mit Internetverbindung unter ab und meldet sich erneut an, und die zuvor gespeicherten Daten sind wie erwartet vorhanden. Die Internetverbindung war verfügbar und die Daten wurden mit dem Server synchronisiert.
SZENARIO # 2
Jetzt schaltet der Benutzer seine/ihre Internetverbindung ab. Fügen Sie weitere Daten zur Datenbank hinzu und melden Sie sich aus der App ab, wenn die Internetverbindung deaktiviert ist.
Jetzt schaltet der Benutzer seine/ihre Internetverbindung wieder auf und Zeichen in die App in der exakt gleichen Art und Weise wie oben.
Jetzt der Benutzer sehen keine Daten, während die App im Offline-Modus wurde hinzugefügt. Ich habe setPersistenceEnabled(true)
und es funktioniert perfekt in normalen Situationen.
Das Problem
Das Problem ist, dass Beharrlichkeit schlägt fehl, wenn der Benutzer im Offline-Modus ist, fügt einige Daten in die Datenbank (die nicht auf den Server nicht synchronisiert werden, da es kein Internet) und abmeldet in Offline-Modus selbst und meldet sich später wieder an.
Dies ist ein Grenzfall, aber einige meiner Benutzer diese haben konfrontiert und haben ihre wertvollen Daten wegen dieser Fehler verloren. Wie behebe ich das? Ist es das Standardverhalten der Firebase-Datenbank? Wenn ja, gibt es eine Umgehung dafür?
Wer irgendwelche Ideen auf, die wie diese zu lösen? –