класс обслуживания firebase в swift 5.1 Xcode iOS - PullRequest
0 голосов
/ 31 января 2020

Я создал класс обслуживания firebase . В этом классе есть функция getAllCategoryData(), которая извлекает все данные из базы данных.

class FirebaseService
{

    static public func getAllCategoryData(completion: @escaping ([CategoryModel]) ->Void )
{
    var catModel = [CategoryModel]()
    let databaseRef = Database.database().reference()
    catModel.removeAll()
    databaseRef.child("Category").queryOrderedByKey().observe(.value) { (dataSnapshot) in
        if let snapShot = dataSnapshot.children.allObjects as? [DataSnapshot]
        {
            for snap in snapShot
            {
                if let allData = snap.value as? [String:String]
                {
                    let catName = allData["categoryName"]
                    let catImage = allData["categoryImage"]
                    catModel.append(CategoryModel(catName: catName!, catImg: catImage!))
                    //print("catName == \(catName!)")
                }
            }

        }
        print(catModel)
        completion(catModel)
    }
   }
 }

В этой функции я пытаюсь получить все данные категории, такие как categoryName & categoryImage . и пытаюсь сохранить эти данные в моем CategoryModel классе

class CategoryModel
{ 
   var categoryName : String?
   var categoryImage : String

   init(catName : String, catImg : String) {
      self.categoryName = catName
      self.categoryImage = catImg
   }
}

в моем HometableV C я вызываю эту функцию вот так и добавляю все это данные на мой var data = [CategoryModel](). так что я могу показать этот массив CategoryModel для моего просмотра таблицы. но это дает мне ноль .

FirebaseCommon.getAllCategoryData { (category) in
        self.data.append(contentsOf: category)
    }
    print("======\(data.last?.categoryName)")

1 Ответ

1 голос
/ 31 января 2020

Любое использование данных должно произойти в течение закрытия:

FirebaseCommon.getAllCategoryData { (category) in
    self.data.append(contentsOf: category)
    print("======\(data.last?.categoryName)")
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...