从firestore

时间:2017-12-02 15:06:06

标签: ios swift firebase google-cloud-firestore

我是ios和firebase的新手。

我有一张桌面视图,显示我的火库中的文件, 每个文档都有一个子集合,我想在我点击行时获取它,并在第二个tableView中显示新数据

现在我正在使用:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    switch segue.identifier {

    case "showOptions"?:
    let selectedDishTableViewController = segue.destination as! SelectedDishViewController
    if let indexPath = tableViewDishes.indexPathForSelectedRow {
        brain.loadOptions(dish: brain.listOfDishes[indexPath.row])
        selectedDishTableViewController.dish = brain.listOfDishes[indexPath.row]
        selectedDishTableViewController.myOption = brain.myOption
        brain.myOption.removeAll()
        }
        default: break
    }
}

这是我的大脑功能:

func loadOptions(dish:Dish) {

        db.collection("Restaurants").document("Limon").collection("Menu").document((self.sectionName!)).collection("Dishes").document(dish.DishName).collection("Options").getDocuments { [weak self](querySnapshot, error) in
            if error != nil {print(error)}
            else {
                for document in querySnapshot!.documents {
                    // appending the data to my Array that will be presented in the next tableView
                }
            }
        }

}

现在发生的事情是我第一次点击行时第一个viewdidload会出现第二个tableview,因为db.collection已经asynced,这导致我必须按回然后点击同一行来查看来自第一次打击。

1 个答案:

答案 0 :(得分:0)

所以我设法解决了我的问题未来的googlers, 我为db.collection添加了一个完成处理程序,在第二个tableView的ViewDidApear中我使用了tableview.reloaddata()