Firebaseユーザ名をUserDefaultに保存しようとしています。nilをチェックした後に予期せずnilが見つかる
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")
}
})
システムのプリントlog in 4
とlog in 4.1
ではなく、4.2:ここでは、私が持っているものです。その間にある行でエラーが発生している必要があります。私はsnapshot.value
がnilではないことをチェックしますが、それでもnilを出力します。どうすれば解決できますか?ありがとう!
'snapshot.value [「ユーザー名」]の値がない場合は、' nilを返します。 'username'キーを押します。ログステートメントに頼るのではなく、デバッガとシングルステップを使用する方法を学ぶ必要があります。 – Paulw11
@ Paulw11なぜこれを回答として投稿しませんでしたか? – Losiowaty
それは答えではないかもしれませんが(確かにそうです)、私は質問者に答えを投稿する前にコメントで確認する機会を与えることを好むです。 – Paulw11