【发布时间】:2016-07-30 17:43:58
【问题描述】:
正在处理一些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,但我想知道我在这里犯的一个简单错误是否可以解决这个问题。谢谢大家!
【问题讨论】:
标签: swift firebase-authentication completionhandler