Cómo verificar si una dirección de correo electrónico ya está en uso Firebase

trabajando en algunosFirAuth cosas, pero por alguna razón no puedo entender cómo verificar si la dirección de correo electrónico propuesta por los usuarios ya ha sido tomada. He intentado llamar.fetchProvidersForEmail como se sugirió en otras preguntas de hace un tiempo, pero por alguna razón simplemente no funcionará. Además, soy muy ecológico cuando se trata de controladores de finalización, por lo que cualquier crítica constructiva al respecto también sería bienvenida. Entonces, por ahora, las partes de mi código que pertenecen a esto son:

import UIKit
import Firebase
class LoginViewController: UIViewController {
var reply : Bool = true
@IBOutlet weak var emailTxt: UITextField!

@IBAction func nextScreen(sender: UIButton) {
print(emailCheck(emailTxt.text!))
}

 func emailCheck(input : String)->Bool{
    let pullEmails = FIRAuth.auth()!.fetchProvidersForEmail(input, completion:{
        result,error in
        var decision : Bool = true
        if error == "nil" {
            print(error)
            self.reply = true
        }else{
            print(error)
            self.reply = false
        }
    })
    return reply
}
}

Entonces, lo que sucede con esto es que la respuesta siempre se imprimetrue, probablemente porque lo definí explícitamente en la parte superior. De cualquier manera, es casi como si el controlador de finalización no estuviera esperando para completarse antes de quereturns el valor. He tratado de descubrir cómo usarlos, así comoAsyncTasks, pero me preguntaba si había un simple error que cometí aquí que podría resolver esto. ¡Gracias a todos!

Respuestas a la pregunta(2)

Su respuesta a la pregunta