Итак, в моем проекте я создал собственную структуру:
import Foundation
import Firebase
struct CheckedIn {
let ref: DatabaseReference?
let key: String
let max_cm: String
let max_in: String
let weight_kg: Int
let weight_lb: Int
init(key: String = "", max_cm: String, max_in: String, weight_kg: Int, weight_lb: Int) {
self.ref = nil
self.key = key
self.max_cm = max_cm
self.max_in = max_in
self.weight_kg = weight_kg
self.weight_lb = weight_lb
}
init?(snapshot: DataSnapshot) {
guard
let value = snapshot.value as? [String: AnyObject],
let max_cm = value["checked_max_cm"] as? String,
let max_in = value["checked_max_in"] as? String,
let weight_kg = value["checked_weight_kg"] as? Int,
let weight_lb = value["checked_weight_in"] as? Int
else {
return nil
}
self.ref = snapshot.ref as DatabaseReference
self.key = snapshot.key
self.max_cm = max_cm
self.max_in = max_in
self.weight_kg = weight_kg
self.weight_lb = weight_lb
}
func toAnyObject() -> Any {
return [
"checked_max_cm": self.max_cm,
"checked_max_in": self.max_in,
"checked_weight_kg": self.weight_kg,
"checked_weight_in": self.weight_lb
]
}
}
Это структура моей базы данных:

И я пытаюсь получить некоторые данные в контроллере представления, используя следующий код:
ref.queryOrderedByKey().observe(.value) { (snapshot) in
var newItems: [CheckedIn] = []
for child in snapshot.children {
print(child)
if let snapshot = child as? DataSnapshot, let company = CheckedIn(snapshot: snapshot) {
newItems.append(company)
}
}
print(newItems)
self.companiesCheckedIn = newItems
self.tableView.reloadData()
UIViewController.removeSpinner(spinner: sv)
}
Проблема в том, что всякий раз, когда я пытаюсь открыть контроллер представления (этот кусок кода находится внутри .viewDidLoad), список 'newItems' пуст. Странно то, что при попытке запустить
печать (ребенок)
все данные напечатаны,

Итак, я предполагаю, что 'if let snapshot = child as? Блок DataSnapshot, let company = CarryOn (snapshot: snapshot) не запущен, что мне делать?