Ich versuche, einen Firebase-Benutzernamen zu UserDefault zu speichern. Hier ist, was ich habe:Unerwarteterweise gefunden Null nach Überprüfung auf Null
let databaseRef = FIRDatabase.database().reference()
databaseRef.child("Users").child((FIRAuth.auth()?.currentUser?.uid)!).observe(.value, with: { (snapshot) in
print("log in 4")
print(snapshot.value)
if snapshot.value != nil {
print("log in 4.1")
UserDefaults.standard.set(snapshot.value!["username"], forKey: "username")//Crash probably occurs here
print("log in 4.2")
}
})
Das System druckt log in 4
und log in 4.1
, aber nicht 4.2. Der Fehler muss auf der dazwischen liegenden Zeile auftreten. Ich überprüfe, dass snapshot.value
nicht Null ist, aber es druckt immer noch Null. Wie kann ich das beheben? Vielen Dank!
'snapshot.value [„username“]' wird null zurück, wenn kein Wert für die ist 'Benutzername' Schlüssel im Wörterbuch. Sie sollten lernen, den Debugger und Einzelschritt zu verwenden, anstatt sich auf Protokollanweisungen zu verlassen. – Paulw11
@ Paulw11 Warum hast du das nicht als Antwort gepostet? – Losiowaty
Es ist vielleicht nicht die Antwort (OK, ist es wahrscheinlich), aber ich bevorzuge es, dem Fragesteller eine Gelegenheit zu geben, in Kommentaren zu bestätigen, bevor Sie eine Antwort schreiben – Paulw11