У меня возникла очень странная проблема при использовании FireBase в Swift.Похоже, что сценарий продолжается, не дожидаясь завершения блока завершения.Вот что я имею в виду:
У меня есть функция:
func create_user(email:String, password:String) -> Bool{
var create_suc = false
Auth.auth().createUser(withEmail: email, password: password) { (user, error) in
if let error = error{
// Error creating new user.
create_suc = false
print("In fail closure: \(create_suc)")
}else{
// Create successfully.
create_suc = true
print("In success closure: \(create_suc)")
}
}
print("Before return: \(create_suc)")
return create_suc
}
И контекст, который вызывает эту функцию:
@IBAction func sign_up(_ sender: UIButton) {
let result = create_user(email: acc_email.text!, password: acc_password.text!)
print("Create successfully: \(result)")
Результат, который я получил, странный:
**Before return: false**
**Create successfully: false**
2018-08-26 16:41:55.313457-0700 chat_app[251:9301] TIC Read Status [2:0x0]: 1:57
2018-08-26 16:41:55.313611-0700 chat_app[251:9301] TIC Read Status [2:0x0]: 1:57
2018-08-26 16:41:56.013564-0700 chat_app[251:9300] TIC Read Status [3:0x0]: 1:57
2018-08-26 16:41:56.013721-0700 chat_app[251:9300] TIC Read Status [3:0x0]: 1:57
**In success closure: true**