【发布时间】:2017-10-21 05:00:44
【问题描述】:
[The Table View is not showing any values that were defined in firebase.][1]
[Firebase 已连接。当我在调试控制台中执行打印对象时,正在获取定义的数据]
https://i.stack.imgur.com/cZuKb.png
**请随意组织和整理,我对此真的很陌生。 谢谢 ** //导入
import UIKit
import Firebase
import FirebaseDatabase
class DatabaseViewController: UIViewController, UITableViewDelegate,
UITableViewDataSource {
override func viewDidLoad() {
// Do any additional setup after loading the view.
//Firebase Refernece
ref = FIRDatabase.database().reference()
databaseHandle = ref?.child("CandleInventory").observe(.childAdded,
with: { (snapshot) in
//Execute Snapshot
let candle = snapshot.value as! String?
if let actualCandle = candle {
self.candleData.append(actualCandle)
}
})
tableView.reloadData()
}
@IBOutlet weak var tableView: UITableView!
var ref: FIRDatabaseReference!
var databaseHandle:FIRDatabaseHandle?
var candleData = [String]()
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
public func tableView(_ tableView: UITableView, numberOfRowsInSection
section: Int) -> Int {
return candleData.count
}
public func tableView(_ tableView: UITableView, cellForRowAt indexPath:
IndexPath) -> UITableViewCell {
let cell = UITableViewCell(style: UITableViewCellStyle.default,
reuseIdentifier: "cell")
cell.textLabel?.text = candleData[indexPath.row]
return(cell)
}
//Datajust wont output
}
【问题讨论】:
-
在主线程上重新加载。并且不要将所有代码放在 viewDidLoad 中。
-
请举例说明我如何做到这一点?我尝试将重新加载放在主线程上,但它仍然无法加载
-
@Anfernee 当您在重新加载数据上方打印时,您可以看到打印的值吗?
-
很可能
reloadData必须在observe回调中。
标签: ios swift firebase firebase-realtime-database