我想通过使用观察者从firebase获取数据。但是当我尝试将值追加到我之前创建的数组中时,它失败了。这里是代码,有人可以帮我吗?swift3 append函数在firebase里面不起作用observeSingleEvent
class ProductTableViewController: UITableViewController{
var productName:[String] = []
override func viewDidLoad() {
super.viewDidLoad()
fetchProduct()
print(self.productName.count)
}
func fetchProduct(){
let currentUserId = FIRAuth.auth()?.currentUser?.uid
FIRDatabase.database().reference().child("users").child(currentUserId!).child("products").observe(.value, with: { (snapshot) in
self.productName.append("Hello")
}, withCancel: nil)
}
应该打印1我追加值成数组 之后,但它打印0
在'print'行和'append'行上放置一个断点。现在运行你的代码并注意哪一个被首先调用。 – rmaddy
这是因为Firebase侦听器是异步的。您应该能够在Swift中在线找到大量示例,了解如何处理此问题。 –