我试图访问存储在firebase仪表板中的值,以便在类中的不同函数和方法中使用它们。
I used this method in this question
我试图打印他们的价值观,整个应用程序崩溃了,它给了我他们的零!
他们实际上并不是零! 我在viewDidLoad中使用了类似的方法,我可以将值检索到标签!
.box1:hover .box2:after{SOME CSS}
为什么我在这里遇到崩溃!
答案 0 :(得分:0)
更改ref.child(byAppendingPath: self.strUserid as String)
要: -
ref.child(self.strUserid)
同时删除let refer = FIRDatabase.database().reference().child("UserDevices")
。
您无法在范围外全局初始化您的引用,因为您不知道您的类的初始化顺序,并且可能的情况是您的 FIRDatabase 尚未初始化您尝试初始化 let refer
。
而不是 refer
中的 retrieveUserData
FIRDatabase.database().reference().child("UserDevices")
您在 viewController 的 LIFE CYCLE 中看到, viewWidAppear 之前调用 viewdidLoad
所以你需要的是: -
override func viewDidLoad() {
super.viewDidLoad()
..
retrieveUserData{(email,phone,ImageUrl) in
self.globalEmail = email
self.globalPhone = phone
self.globalImageUrl = ImageUrl
self.DeviceDetailsImageView.downloadedFrom(link: globalImageUrl)
// .. Do your stuff...
}
}