test for this latest version uses the tableView: bind: method (it looks like it's an extension of the UITableView class that they did), and I was able to get it working.
override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) let firebaseRef = FIRDatabase.database().reference().child() let query = firebaseRef.queryOrderedByKey() let dataSource = self.tableView.bind(to: query, populateCell: { (tableView: UITableView, indexPath: IndexPath, snapshot: FIRDataSnapshot) -> UITableViewCell in let cell = tableView.dequeueReusableCell(withIdentifier: "cellIdentifier", for: indexPath) let value = snapshot.value as! NSDictionary let someProp = value["someProp"] as? String ?? "" cell.textLabel?.text = someProp return cell }) }
Also make sure that you are watching the change request, otherwise the tableView will not be populated.
self.query?.observe(.value, with: { snapshot in })
source share