пытается получить список категорий из базы данных Firebase (Swift) - PullRequest
0 голосов
/ 17 ноября 2018

Я пытаюсь получить список категорий из firebase.но проблема в том, что я также получаю имя родителя.

enter image description here

enter image description here

//initiate downloading categories from database

    self.downloadCategoriesFromDatabase()
    //


}

---------------------custom function downlaods--------------------------------

    //  custom function downlaods categories from firebase
    func downloadCategoriesFromDatabase(){

        //   call to the root of the database and downlaod a snapshot
        refCategories.observe(.value) { (snapshot) in

            //  check if "categories" exist. if yes we proceed to downlaod
            if snapshot.hasChild("Categories") {



----------------- //  get each item in the snapshot and add category name to categories array



              self.refCategories.child("Categories").observeSingleEvent(of: .value) { (snapshot) in


                    self.categories.removeAll()

                    let enumerator = snapshot.children
                    while let rest = enumerator.nextObject() as? DataSnapshot {
                        self.categories.append(rest.key)
                    }

--------------------  // add downloaded categories to  array


                     self.categories.append(snapshot.key)

                    DispatchQueue.main.async {



                        //  let's reload tableview
                        self.tableview.reloadData()
                    }


                }
                }

            //   reload the table view if the category is not available
            self.tableview.reloadData()
        }
    }

1 Ответ

0 голосов
/ 17 ноября 2018

Удалите последние self.categories.append(snapshot.key), чтобы избавиться от этого Categories элемента.

В целом, хотя ваш код выглядит довольно сложным для того, что он пытается сделать.Насколько я вижу, это будет делать то же самое:

func downloadCategoriesFromDatabase(){

    self.refCategories.child("Categories").observeSingleEvent(of: .value) { (snapshot) in

        self.categories.removeAll()

        let enumerator = snapshot.children
        while let rest = enumerator.nextObject() as? DataSnapshot {
            self.categories.append(rest.key)
        }

        self.tableview.reloadData()

    }

}

Если избавится от вложенного слушателя, двойного способа перезагрузки и дополнительного ключа, который у вас там был.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...