Как мне обновить существующие данные в самом приложении в базе данных Firebase Xcode 9? - PullRequest
0 голосов
/ 18 января 2019

У меня есть контроллер табличного представления, который загружает в базу данных пользователя. Когда я щелкаю ячейку, появляется EditViewController с данными, переданными для заполнения заданных текстовых полей, меток и т. Д., Но когда я нажимаю кнопку «Сохранить», выдается ошибка, поскольку данные не сохраняются и, следовательно, данные не выбираются контроллером табличного представления. , Как мне обновить существующие данные в том же дереве?

func editedRecipe() {

    let key = refRecipe.childByAutoId().key
    let recipe = ["id" : key,
                  "name" : nameTextField.text!,
                  "rating" : ratingControl.rating] as [String : Any]        
        self.refRecipe.child((FIRAuth.auth()?.currentUser?.uid)!).child(key).setValue(recipe)
}

Вот моя древовидная структура Firebase (в итоге):

->recipes
   ->id of the user
         ->recipe id
              ->recipename
              ->reciperating

Мне нужно, чтобы данные рецепта редактировались и обновлялись в существующей древовидной структуре для этого рецепта, но в данный момент происходит сбой приложения.

Вот ошибка при попытке загрузить данные обратно в табличное представление:

    func loadData() {
    refRecipes.child((user?.uid)!).observe(FIRDataEventType.value, with: { (snapshot) in
        // If the reference have some values
        if snapshot.childrenCount > 0 {

            // Clearing list
            self.recipeList.removeAll()

            // Iterating through all values
            for recipe in snapshot.children.allObjects as! [FIRDataSnapshot] {

                let recipeObject = recipe.value as? [NSString: AnyObject]
                let recipeID = recipeObject?["id"]
                let recipeName  = recipeObject?["name"]
                let recipeRating = recipeObject?["rating"]

                // Fetching
                let recipe = Recipe(id: recipeID as! String, name: recipeName as! String, rating: recipeRating as! Int) --> ERROR HERE: Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value

                // Appending to list
                self.recipeList.append(recipe!)
            }
            // Reloading tableview
            self.tableView.reloadData()
        }
    })
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...