관찰자를 사용하여 Firebase에서 데이터를 가져 오려고합니다. 그러나 이전에 만든 배열에 값을 추가하려고하면 실패합니다. 여기에 코드가 있습니다. 누군가 나를 도울 수 있습니까?swift3 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)에서이 문제를 다루는 방법에 대한 많은 예제를 온라인에서 찾을 수 있어야합니다. –