【发布时间】:2017-10-03 13:13:40
【问题描述】:
我的数据库树
你好, 我正在尝试将数据检索到 tableview,但是虽然我可以从 firebase 数据库中读取数据,但我无法在 table view 中显示它们。我的代码如下,希望你能帮到我。
class Calls {
var callType: String?
var callHospital: String?
init(callType: String?, callHospital: String?) {
self.callType = callType
self.callHospital = callHospital
}
}
class myCallsViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
var ref:DatabaseReference!
var myCallList = [Calls]()
@IBOutlet weak var callListTableView: UITableView!
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return myCallList.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "customcell", for: indexPath) as! myCallsViewControllerTableViewCell
let test = myCallList[indexPath.row]
cell.callType?.text = test.callType
cell.callHospital?.text = test.callHospital
return cell
}
override func viewDidLoad() {
super.viewDidLoad()
callListTableView.dataSource = self
callListTableView.delegate = self
LoadCalls()
}
func LoadCalls() {
ref = Database.database().reference()
let userID = Auth.auth().currentUser?.uid
ref.child("calls").queryOrdered(byChild: "userID").queryEqual(toValue: userID!).observe(.childAdded, with: { (snapshot) in
if snapshot.childrenCount > 0{
self.myCallList.removeAll()
for result in snapshot.children.allObjects as! [DataSnapshot]{
let results = result.value as? [String : AnyObject]
let type = results?["calltype"]
let hospital = results?["hospital"]
let myCalls = Calls(callType: type as! String?, callHospital: hospital as! String?)
self.myCallList.append(myCalls)
}
self.callListTableView.reloadData()
}
})
}
【问题讨论】:
-
能否请您在 LoadCalls 的 for 循环中添加 print 语句 并显示结果
-
我把转储语句是这样的: let myCalls = Calls(callType: type as!String?, callHospital: hospital as!String?) self.myCallList.append(myCalls) dump(myCalls) 和结果是 Kan_Bagisi_Portali.Calls #0 - callType: nil - callHospital: nil ▿ Kan_Bagisi_Portali.Calls #0 - callType: nil - callHospital: nil ▿ Kan_Bagisi_Portali.Calls #0 - callType: nil - callHospital: nil.... 继续像这样
-
我想检查一下您是否真的从 firebase 接收到任何数据,因为您的代码似乎没有问题
-
好的,但是你将如何检查?
标签: swift uitableview firebase firebase-realtime-database