2016-09-07 5 views
0

Ich arbeite an einer iOS-App, die Daten aus der Firebase-Datenbank empfängt. Ich muss eine lokale Version der DB behalten und fand die Offlinefähigkeit von Firebase wirklich toll. JetztFirebase 3 lokalen Cache aktualisieren

  1. Gibt es eine Möglichkeit, automatische Synchronisierung zu deaktivieren und nur zu aktualisieren, wenn der Benutzer auf eine Schaltfläche klickt?
  2. Gibt es eine Möglichkeit, nur neue oder geänderte Elemente zu aktualisieren, anstatt alles erneut herunterzuladen?

2-bis. Gibt es eine Möglichkeit, jedes Element zu kennen, das hinzugefügt/geändert wurde?

  1. Entspricht FIRDataSnapshot dem NSCoding-Protokoll? Ich möchte es in einer plist-Datei lokal speichern ...

EDIT:

Nach mehr in Firebase 3-Dokumentation zu lesen, ich suche jetzt alle DB Baum in einer einzigen Anfrage zu bekommen, ist es möglich?

Mein Code ist der folgende

FIRDatabaseReference.goOnline()  
    var firebase = FIRDatabase.database().referenceWithPath("items") 
      firebase.observeEventType(.Value, withBlock: { snapshot in 

       print(snapshot.value) 

       if let snapshots = snapshot.children.allObjects as? [FIRDataSnapshot] { 

        for snap in snapshots { 

         if let postDictionary = snap.value as? Dictionary<String, AnyObject> { 

          print ("item received") 
         } 
        } 
       } 
      }) 
FIRDatabaseReference.goOffline() 

Antwort

1
  1. Ja. Sie können programmgesteuert steuern, wann Daten mithilfe von observeSingleEventOfType geladen werden.

  2. Nicht bei der Verwendung von observeSingleEventOfType, weil damit der Firebase-Cache effektiv deaktiviert wird.

  3. FIRDataSnapshot entspricht nicht NSCoding Protokoll

+0

fand ich in der Dokumentation der GoOnline() und goOffline() -Methoden und ich denke, sie wird mich tun lassen, was ich versuche zu tun (1) Haben Sie Erfahrung mit diesen Methoden? Die Firebase 3 Docs ist nicht wirklich helpul – jack87

+0

Mit 'goOffline()' und 'goOnline()' können Sie programmgesteuert steuern, ob Firebase mit seinen Servern verbunden ist. Für verwandte Fragen siehe [diese Liste] (http://stackoverflow.com/search?q=%5Bfirebase%5D%5Bios%5D+gooffline). Wenn Sie Probleme haben, einen Teil des Codes zum Funktionieren zu bringen, zeigen Sie den [minimalen Code, der das Problem in Ihrer Frage reproduziert] (http://stackoverflow.com/help/mcve) an. –

+0

Danke, dass du wirklich hilfreich bist, eigentlich versuche ich zu verstehen, wie ich all die Firebase-Fähigkeiten nutzen kann, um ein wirklich einfaches Problem zu lösen. Gibt es eine Möglichkeit, den Baum der DB in einem JSON-Format herunterzuladen? – jack87