2016-06-01 1 views
7

FirebaseDatabase bietet zwei Methoden, um einen Client offline zu nehmen:Warum zwei Methoden für den FirebaseDatabase-Client offline?

DatabaseReference.goOffline()

manuell die Firebase Datenbank-Client vom Server und deaktivieren die automatische Wiederverbindung trennen. Hinweis: Der Aufruf dieser Methode wirkt sich auf alle Firebase-Datenbankverbindungen auf aus.

FirebaseDatabase.goOffline()

Fährt unsere Verbindung zur Datenbank-Backend Firebase bis GoOnline() aufgerufen wird.

  1. ValueEventListener für ".info/verbunden" Feuer für die Trenn
  2. OnDisconnect Aktion ausführt
  3. ValueEventListener s für Fern Änderungen nicht feuern:

Ein Aufruf von FirebaseDatabase.getInstance().goOffline() die erwarteten Ergebnisse erzeugt , diejenigen für lokale Änderungen tun

  • CompletionListener s nicht feuern
  • Ein Anruf an DatabaseReference.goOffline() scheint keine Wirkung zu haben. Keines der oben aufgeführten Verhaltensweisen tritt auf. Ist es kaputt? Wenn nicht, wie unterscheidet es sich von den anderen goOffline()?

    +0

    Ich kann das gleiche Verhalten bestätigen. Nur FirebaseDatabase.getInstance(). GoOffline() scheint zu funktionieren. –

    +0

    @NizamMohideen: In meinem ursprünglichen Post sollte ich die Version der Bibliothek angegeben haben, gegen die ich getestet habe - jetzt kann ich mich nicht mehr erinnern. Ich habe nicht erneut mit 9.2.1 getestet. Welche Version hast du benutzt? –

    +0

    Dieses Verhalten auf 9.0.2 gesehen –

    Antwort

    2

    Dies war ein Versehen in der Version 9.x. FirebaseDatabase.getInstance().goOffline()/goOnline() sind die richtigen Methoden zu verwenden und DatabaseReference.goOffline()/goOnline() sind in der Tat gebrochen und werden in einer zukünftigen Version entfernt werden. Entschuldigung für die Verwirrung!