Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 将数据从Firebase追加到阵列_Swift_Firebase_Firebase Realtime Database - Fatal编程技术网

Swift 将数据从Firebase追加到阵列

Swift 将数据从Firebase追加到阵列,swift,firebase,firebase-realtime-database,Swift,Firebase,Firebase Realtime Database,我想在tableView中显示以下数组: private var firOrder = [String]() private var firDate = [Int]() 我尝试像这样获取和附加数据: override func viewDidLoad() { ref = Database.database().reference() ref?.child("users").child(user).child("Orders").observe(.value, with: { (sna

我想在tableView中显示以下数组:

private var firOrder = [String]()
private var firDate = [Int]() 
我尝试像这样获取和附加数据:

override func viewDidLoad() {
    ref = Database.database().reference() ref?.child("users").child(user).child("Orders").observe(.value, with: { (snapshot) in
        let values = snapshot.value as? [String: AnyObject]
        let order = values!["Order"] as! String
        let date = values!["Date"] as! Int
        print("order \(order)") //This prints correctly
        print("date \(date)")  //This prints correctly

        self.firOrder.append(order)   
        self.firDate.append(date)
    })

    print(firOrder) //This prints empty and does not append to array.   
    print(firDate) //This prints empty and does not append to array
}

因为调用是异步的,所以需要在数据返回的回调中重新加载表

self.firOrder.append(order)   
self.firDate.append(date)
self.tableView.reloadData()

因为调用是异步的,所以需要在数据返回的回调中重新加载表

self.firOrder.append(order)   
self.firDate.append(date)
self.tableView.reloadData()

任何需要来自
snapshot
的数据的代码都需要在定义
snapshot
的闭包内部调用。另请参见,,,任何需要
快照
中数据的代码都需要在定义
快照
的闭包内调用。另请参阅,谢谢您的回答。我在
视图中出现了
tableView.reloadData()
,在尝试使用以下内容填充tableView时出现错误:“线程1:致命错误:索引超出范围:
firrorder[indexPath.row]
您提供的numberOfRows中的哪个计数,您是否也使用这两个数组作为表的数据源??啊!好样的!!我在
numberOfRows
中使用了错误的计数,非常感谢。谢谢你的回答。我在
视图中出现了
tableView.reloadData()
,在尝试使用以下内容填充tableView时出现错误:“线程1:致命错误:索引超出范围:
firrorder[indexPath.row]
您提供的numberOfRows中的哪个计数,您是否也使用这两个数组作为表的数据源??啊!好样的!!我在
numberOfRows
中使用了错误的计数,非常感谢。