Я создал класс обслуживания 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)")