Swift 将数据从Firebase追加到阵列
我想在tableView中显示以下数组:Swift 将数据从Firebase追加到阵列,swift,firebase,firebase-realtime-database,Swift,Firebase,Firebase Realtime Database,我想在tableView中显示以下数组: private var firOrder = [String]() private var firDate = [Int]() 我尝试像这样获取和附加数据: override func viewDidLoad() { ref = Database.database().reference() ref?.child("users").child(user).child("Orders").observe(.value, with: { (sna
private var firOrder = [String]()
private var firDate = [Int]()
我尝试像这样获取和附加数据:
override func viewDidLoad() {
ref = Database.database().reference() ref?.child("users").child(user).child("Orders").observe(.value, with: { (snapshot) in
let values = snapshot.value as? [String: AnyObject]
let order = values!["Order"] as! String
let date = values!["Date"] as! Int
print("order \(order)") //This prints correctly
print("date \(date)") //This prints correctly
self.firOrder.append(order)
self.firDate.append(date)
})
print(firOrder) //This prints empty and does not append to array.
print(firDate) //This prints empty and does not append to array
}
因为调用是异步的,所以需要在数据返回的回调中重新加载表
self.firOrder.append(order)
self.firDate.append(date)
self.tableView.reloadData()
因为调用是异步的,所以需要在数据返回的回调中重新加载表
self.firOrder.append(order)
self.firDate.append(date)
self.tableView.reloadData()
任何需要来自
snapshot
的数据的代码都需要在定义snapshot
的闭包内部调用。另请参见,,,任何需要快照
中数据的代码都需要在定义快照
的闭包内调用。另请参阅,谢谢您的回答。我在视图中出现了tableView.reloadData()
,在尝试使用以下内容填充tableView时出现错误:“线程1:致命错误:索引超出范围:firrorder[indexPath.row]
您提供的numberOfRows中的哪个计数,您是否也使用这两个数组作为表的数据源??啊!好样的!!我在numberOfRows
中使用了错误的计数,非常感谢。谢谢你的回答。我在视图中出现了tableView.reloadData()
,在尝试使用以下内容填充tableView时出现错误:“线程1:致命错误:索引超出范围:firrorder[indexPath.row]
您提供的numberOfRows中的哪个计数,您是否也使用这两个数组作为表的数据源??啊!好样的!!我在numberOfRows
中使用了错误的计数,非常感谢。