【发布时间】:2017-05-05 10:55:40
【问题描述】:
所以我在类级别声明我的用户数组,这非常好,并存储我放入其中的任何值,除非我从我的 firebase 数据库中检索它......我一直在努力解决这个问题,这是我能做的唯一错误似乎链接到这个是可能的。
由于模拟器错误,退回到从 NSUserDefaults 加载访问令牌
由于某种奇怪的原因,我的数组一直告诉我它是空的......
我该如何解决这个问题?
var allUsers = [User]()
func retrieveUsers() {
let ref = FIRDatabase.database().reference()
ref.child("users").queryOrderedByKey().observeSingleEvent(of: .value, with: { snapshot in
let users = snapshot.value as! [String : AnyObject]
self.allUsers.removeAll()
for (_, value) in users {
if let uid = value["uid"] as? String {
if uid != FIRAuth.auth()!.currentUser!.uid {
if let name = value["name"] as? String, let age = value["birthdate"] as? String {
let calculatedAge = self.calcAge(birthdate: age)
let userToShow = User(name: name,age: calculatedAge)
print(userToShow.Name)
self.allUsers.append(userToShow)
}
}
}
}
})
print(allUsers.count)
ref.removeAllObservers()
}
提前致谢!!
【问题讨论】:
-
observeSingleEvent异步工作。将print行放在完成块中。