Я пытаюсь получить свои данные из базы данных Firebase Realtime, однако эти данные не отображаются в моем UITableView
. Я извлекаю данные и пытаюсь добавить их в массив, который имеет тип созданной мною модели данных под названием Party
. Я не уверен, как настроить свой код, чтобы я мог успешно получить данные из Firebase на мой UITableView
, и я также не уверен, в чем проблема.
Я пытался изменить код и использовать разные методы для извлечения данных из Firebase, но ничего не получалось. Я создал массив с именем party, в котором хранится информация типа Party
.
Ниже приведен мой код для функции переопределения UITableViewController
. Вот где покоится большая часть кода для моей базы данных Firebase. Это табличное представление с пользовательскими ячейками.
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
// Set the Firebase reference.
ref = Database.database().reference()
// Retrieve the parties and listen for changes.
ref?.child("parties").observeSingleEvent(of: .value, with: { (snapshot) in
// Take the value from the snapshot and add it to the parties array.
let value = snapshot.value as? NSDictionary
let titleText = value?["titleText"] as? String ?? "Title"
let dateText = value?["dateText"] as? String ?? "Date"
let timeText = value?["timeText"] as? String ?? "Time"
self.parties.append(Party(title: titleText, date: dateText, time: timeText))
})
tableView.reloadData()
guard let cell = tableView.dequeueReusableCell(withIdentifier: "YourPartiesTableViewCell", for: indexPath) as? YourPartiesTableViewCell else {
fatalError("The dequeued cell is not an instance of YourPartiesTableViewController")
}
let party = parties[indexPath.row]
// Configure the cell
cell.titleLabel.text = party.titleText
cell.dateAndTimeLabel.text = "\(party.dateText) at \(party.timeText)"
cell.inviationsLabel.text = "0 people"
cell.view.layer.cornerRadius = 15
return cell
}
Я ожидал, что он добавит данные из Firebase в массив сторон. Затем я хотел, чтобы эти данные отображались в табличном представлении. Почему этого не происходит? Где я ошибаюсь в своем коде?