0

I want to return an array of folders from the function using dispatch.notify() but it won't allow me to do. I have tried printing it out after notify but it is an empty array (It should have data from firestore query). Anyone have a suggestion to implement this ?

var folders = [Folder]()
var dispatch = DispatchGroup()

func getFolders() {
    self.dispatch.enter()
    print("--- Enter Dispatch ---")
    self.userFolders.getDocuments() { (querySnapshot, err) in
        if let err = err {
            print("Error getting Folders: \(err)")
        }
        else {
            for document in querySnapshot!.documents {
                let folder = Folder(name: document.documentID, menu: document.data())
                self.folders.append(folder)
            }
        }
        self.dispatch.leave()
        print("--- Leave Dispatch ---")
    }
}

func getFoldersData() -> [Folder] {
    getFolders()
    self.dispatch.notify(queue: .main) {
        print("--- Notify Dispatch ---")
    }
    return folders // This one return folders = []
}
ttungmayy
  • 3
  • 3

0 Answers0