所以我在类级别声明我的用户数组,这是非常好的,并存储我放入其中的任何值,除非我从我的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()
}
提前致谢!!
答案 0 :(得分:0)
异步数据检索:-)你看到'userToShow.Name'打印出来了吗?您在数据检索完成之前打印计数 - 尝试将其放入完成处理程序