I have two functions:  func Females_NonChat() and func males_NonChat()
I want to wait for both of them to finish before executing the print statement in viewdidload. Do I need another completion handler to accomplish that? 
Those functions used are firebase completion handlers for requesting information from the online database...
override func viewDidLoad() {
    super.viewDidLoad()
    func Females_NonChat()
    func males_NonChat()
    print("finished executing both asynchronous functions")
}
func Females_NonChat(){
    Anon_Ref.child("Chatting").child("female").observeSingleEventOfType(.Value, withBlock: {(snapshot) in
        if let FemInChatting = snapshot.value as? [String : String] {
            print("executing")
        }
    })
}
func males_NonChat(){
    Anon_Ref.child("Chatting").child("male").observeSingleEventOfType(.Value, withBlock: {(snapshot) in
        print("executing")
    })
}
 
     
    