В настоящее время я пытаюсь прочитать данные из базы данных в реальном времени.Функция ниже вызывается после того, как пользователь успешно вошел в систему.
База данных имеет следующую структуру:
driven
- users
- uid
- monthlyStartKm
- currentKm
...
У меня есть следующий код для чтения данных:
guard let uid = Auth.auth().currentUser?.uid else { return }
let databaseRef = Database.database().reference()
databaseRef.child("users").child(uid).observeSingleEvent(of: .value, with: { (snapshot) in
let value = snapshot.value as? NSDictionary
let monthlyStartKmData = value?["monthlyStartKm"] as? String ?? ""
let currentKmData = value?["currentKm"] as? String ?? ""
....
Почему-то ежемесячноStartKmData и currentKmData возвращают nil
. Что это я забыл?
Редактировать:
print(value)
печатает следующее:
Optional({
monthlyStartKm = 15000;
currentKm = 15250;
...
})
Второе редактирование:
Сохраняется так, как startKm, так и currentKm имеют тип Int
:
let userObject = [
"monthlyStartKm": startKm,
"currentKm": currentKm,
...
] as [String: Any]