Я пытаюсь сохранить имя пользователя 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
не ноль, но он по-прежнему печатает ноль. Как я могу это решить? Благодаря!
'snapshot.value [«имя пользователя»]' вернет ноль, если нет никакого значения для 'username' в словаре. Вы должны научиться использовать отладчик и одиночный степпинг, а не полагаться на записи журнала. – Paulw11
@ Paulw11 почему вы не опубликовали это как ответ? – Losiowaty
Это может быть не ответ (хорошо, наверное), но я предпочитаю, чтобы у меня появилась возможность подтвердить комментарии, прежде чем отправлять ответ – Paulw11