【发布时间】:2020-08-21 18:57:56
【问题描述】:
我需要等待来自 firebase 的数据,否则我的应用会因为 nil 值而崩溃。我对此进行了搜索并观看了一些视频并查看了其他问题,但实际上我看不到任何 firebase 示例。如何等待来自 firebase 的数据?如何使用调度或信号量,哪个更有效?
这是我的示例代码:
let uid = (Auth.auth().currentUser?.uid)!
let usrIndirimRef = Database.database().reference().child("users").child(uid).child("indirimSayisi")
usrIndirimRef.observe(.value) { (snap) in
let userIndir = snap.value as! Int
self.userIndirimSayisi = userIndir
let usrIndirimTipiRef = Database.database().reference().child("users").child(uid).child("indirimTipi")
usrIndirimTipiRef.observe(.value) { (snapshot) in
if userIndir < 1 {
self.userIndirim = "0"
self.indirimKontrol = false
self.tableView.reloadSections([1], with: .fade)
}else{
self.userIndirim = snapshot.value! as! String
self.tableView.reloadSections([1], with: .fade)
}
}
}
toplamHesapTutari()
这里toplamHesapTutari()函数在数据userIndirim之前执行。它可以解决可能会执行该功能,但我无法确定这是正确的方法。
【问题讨论】: