работаю над некоторыми FirAuth
вещами, но по какой-то причине я не могу понять, как проверить, занят ли уже предложенный пользователями адрес электронной почты. Я пытался позвонить .fetchProvidersForEmail
, как предлагалось в других вопросах некоторое время назад, но по какой-то причине это просто не сработает. Кроме того, я очень зеленый, когда дело доходит до обработчиков завершения, поэтому любая конструктивная критика по этому поводу также будет приветствоваться. Итак, на данный момент части моего кода, которые относятся к этому:
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
}
}
Итак, что происходит с этим, так это то, что ответ всегда печатает true
, вероятно, потому, что я явно определил его вверху. В любом случае, это почти так, как если бы обработчик завершения не ждал фактического завершения, прежде чем он returns
значение. Я пытался понять, как их использовать, а также AsyncTasks
, но мне было интересно, есть ли простая ошибка, которую я сделал здесь, которая могла бы решить эту проблему. Спасибо всем!