gpt4 book ai didi

ios - swift3 append 函数在 firebase observeSingleEvent 内部不起作用

转载 作者:行者123 更新时间:2023-11-28 08:13:13 25 4
gpt4 key购买 nike

我正在尝试使用观察者从 firebase 获取数据。但是当我尝试将该值附加到我之前制作的数组中时,它失败了。这是代码,有人可以帮我吗?

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。

最佳答案

你要知道Firebase的观察者是异步的,所以即使你先调用它,它也得等待响应。与此同时,您的应用程序将继续执行其余代码,因此它将调用打印功能。如果您想证明这一点,请尝试将打印品放入 firebase 调用中:

class ProductTableViewController: UITableViewController{
var productName:[String] = []

override func viewDidLoad() {
super.viewDidLoad()
fetchProduct()

}

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")
print(self.productName.count)
}, withCancel: nil)
}

希望对您有所帮助!

关于ios - swift3 append 函数在 firebase observeSingleEvent 内部不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43198921/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com