好吧我从数据库中读取数据,并在打印出各个变量时正确输出。但是,好像数据拒绝追加到数组。有人知道为什么我根本弄不清楚。从Firebase数据库中读取数据的问题
let commuteBuilder = Commutes()
Database.database().reference().child("Users").child(user).child("Trips").observe(DataEventType.childAdded, with: { (snapshot) in
//print(snapshot)
if let dict = snapshot.value as? NSDictionary {
commuteBuilder.distance = dict["Distance"] as! Double
commuteBuilder.title = dict["TripName"] as! String
commuteBuilder.transportType = (dict["Transport"] as? String)!
}
commuteArray.append(commuteBuilder)
})
print("helper")
print(commuteArray.count)
return commuteArray
好吧,这对我来说更有意义,我明白为什么这可能会有用。我的问题是我以前设置我的代码来使用CoreData,在这种情况下,我正在调用旧数据并将其转储到具有此功能的数组中。那么现在我想为此使用firebase。我得到了如何使用它来填充说自动更新的表视图,但我也有用例,我想添加值(距离值)并输出总距离。 id知道要做的唯一方法是将其转储到数组中并执行求和功能。似乎我不能轻松地使用它们的异步类型函数。 –
你只需要做不同的事情。当你听'.child *'事件时,你可以保持一个正在运行的聚合:只是迄今为止的值的总和。或者,您可以查看'.value'事件,这会一次性为您提供所有子节点。只需迭代它们,并在每次更改时计算总和。请参阅https://firebase.google.com/docs/database/ios/lists-of-data#listen_for_value_events –