Hier ist ein schneller Code zu Firebase, der nicht so funktioniert, wie ich es erwarte und ich würde gerne wissen, was ich falsch mache. Firebase: .observeEventType .Value
let firebaseRootReference = Firebase(url:"https://mywonderfulapp.firebaseio.com/“),
dataRef = firebaseRootReference.childByAppendingPath(“MyList")
dataRef = dataRef.childByAppendingPath(key) // key is a String object.
dataRef.observeEventType(.Value, withBlock: { snapshot in
for dataItem in snapshot.children {
let dataKey = (dataItem as? FDataSnapshot)!.key,
dataVal = (dataItem as? FDataSnapshot)!.value.objectForKey("name") as! String
print("Found (observeEventType) : \(dataKey) -> \(dataVal)")
}
}, withCancelBlock: { error in
print(error.description)
})
Der obige Code druckt etwa wie folgt in der Debugger-Konsole:
Found (observeEventType) : SOME-KEY -> SOME-DATA
Das ist vollkommen in Ordnung, und das ist, was ich in einer normalen Situation erwarten. Aber selbst wenn ich mein Gerät in den Flugmodus setze, um das Netzwerk zu stoppen, druckt es immer noch die gleichen Dinge. Natürlich habe ich die Serverseite überprüft, um zu bestätigen, dass nichts geschrieben wurde.
Mit anderen Worten wird der Block in dataRef.observeEventType aufgerufen, obwohl nichts auf den Server geschrieben wurde.
Es verfolgt nicht, was tatsächlich auf dem Server geschrieben wurde, aber was wäre geschrieben worden, wenn es verbunden war. Also was fehlt mir? Wahrscheinlich nicht überprüfen, was ich sollte?
Beachten Sie, dass ich kein Problem sehe, wenn normalerweise mit dem Netzwerk verbunden ist.
versuchen OnDisconnect Methoden –
Wie würde ich diese OnDisconnect Methode in meinem Fall verwenden? Und was ist los mit dem, was ich getan habe? – Michel
Ich versuche nicht, etwas spezifisch zu tun, wenn der Benutzer trennt. – Michel