Показать данные Firebase в TableView Swift 4 - PullRequest
1 голос
/ 06 мая 2019

У меня есть следующий JSON в Firebase, и я намереваюсь показать эти данные в UITABLEVIEW

JSON struct Firebase

enter image description here

Чтобы отобразить их в моем TableView, у меня есть следующий код:

@IBOutlet weak var tableView: UITableView!
var ref: DatabaseReference!
var postDataRef = [String]()
var databaseHandle: DatabaseHandle?

 override func viewDidLoad() {
        super.viewDidLoad()
        ref = Database.database().reference()
        tableView.delegate = self
        tableView.dataSource = self
        databaseHandle = ref.child("CrudPrincipal").observe(.childAdded) { (DataSnapshot) in
            let crudOne = DataSnapshot.value as? String
            if let actualInfo = crudOne {
                self.postDataRef.append(actualInfo)
                self.tableView.reloadData()
            }
        }
    }
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return postDataRef.count
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell:UITableViewCell=UITableViewCell(style: UITableViewCell.CellStyle.subtitle, reuseIdentifier: "PostCell")
        cell.textLabel?.text = postDataRef[indexPath.row]
        return cell
    }

Данные отправлены правильно, но табличное представление не показывает их.Что я могу делать не так?

1 Ответ

0 голосов
/ 07 мая 2019

Я решил это с помощью этой строки кода:

databaseHandle = ref.child("CrudPrincipal").observe(.childAdded, with:  { (DataSnapshot) in
    let crudOne = DataSnapshot.value as? String
    if let actualInfo = crudOne {
        self.postDataRef.append(actualInfo)
        self.tableView.reloadData()
    }
})
...