当我第一次提出这个问题时,我没有真正完成我的研究。但是经过20多个小时后,我的结构与Firebase文档完全相同。但是,我无法访问闭包之外的任何数据。这是应该将数据写入的结构:
struct UserStruct {
let name : String!
let age : String!
}
当它被调用时,所有内容都在数据库中写得很完美,在封闭内部它没有打印nil,它确实打印出实际值。我已经尝试了
DispatchQueue.main.async {
}
但那也没有用,有人引导我!任何帮助表示赞赏,这是我与Firebase的最后一期。
let currentUser = FIRDatabase.database().reference(withPath: "users").child((FIRAuth.auth()!.currentUser?.uid)!)
currentUser.observeSingleEvent(of: .value, with: { snapshot in
let value = snapshot.value as? NSDictionary
let name = value?["name"] as? String
let age = value?["age"] as? String
self.userAdded.insert(UserStruct(name: name, age: age), at: 0) // 1
let user = UserStruct.init(name: name, age: age) // 2
print("1 \(user.name)")
print("2 \(self.userAdded[0].name!)")
})
我写了两种获取数据的方法,第二(2)种方式是Firebase建议的方式,但我甚至无法像使用Struct那样获得更近的用户。