Mein Code Ich kann keine Daten von Firebase abrufen.Kann keine Daten aus der Firebase-Datenbank abrufen
Wenn ich Werte in Firebase hinzufüge, sehe ich, dass Elemente in der Firebase-Datenbank auf meiner Konsole hinzugefügt werden.
Auch ich hatte Listener .childAdded
erstellt und ich sehe, dass Elemente auf Firebase-Datenbank hinzugefügt.
Aber wenn ich rufe .value
ruft es nil
Ergebnis.
Ich weiß nicht, was dort passiert.
Hier ist mein Code.
class FirebaseManager {
var ref: DatabaseReference?
var database: DatabaseHandle?
static let shared: FirebaseManager = {
Database.database().isPersistenceEnabled = true
return FirebaseManager()
}()
private func initFireabase() {
ref = Database.database().reference(withPath: AMUtils.getUDID())
}
func addToDB(composition: Composition) {
initFireabase()
ref?.child(String(composition.id)).child("id").setValue(composition.id)
ref?.child(String(composition.id)).child("title").setValue(composition.title)
}
func removeFromDb(composition: Composition) {
ref?.child(String(composition.id)).removeValue()
}
func getCompositonFromDB(onResult: @escaping ([Composition]) -> Void){
initFireabase()
var compositions: [Composition] = []
database = ref?.observe(.value, with: { (snapshot) in
compositions.removeAll()
let value = snapshot.value as? JSON
compositions.append(AudioListParser.parseObject(json: value!))
self.ref?.removeObserver(withHandle: self.database!)
onResult(compositions)
})
}
}
getCompositonFromDB() Ich Aufruf bin, wenn ich die View-Controller bin ab und dies ist immer noch nil ich Werte auf Datenbank haben mich
Könnte jemand sagen, was ich hier falsch gemacht haben?
'snapshot.value' in Ihrem Fall macht ein' NSDictionary '. Ich bin mir nicht sicher, was der 'JSON'-Typ ist, aber es ist kein Typ, den' FIRDataSnapshot.value' zurückgibt: https://firebase.google.com/docs/reference/ios/firebasedatabase/api/reference/Classes/ FIRDataSnapshot # Wert –
@FrankvanPuffelen public typalias JSON = [String: Beliebig] – pmb
Was bedeutet * das ist immer nil *? Wenn du die Zeile * print (snapshot) * unmittelbar nach der Beobachtungszeile hinzufügst, was druckt? – Jay