【问题标题】:Swift function stops running? [duplicate]Swift 函数停止运行? [复制]
【发布时间】:2018-08-18 13:52:29
【问题描述】:

我有以下函数尝试使用 Firebase 将用户登录到我的应用程序:

func tryLogin(email: String, password: String) -> Bool {
    var loginSuccess = false

    Auth.auth().signIn(withEmail: email, password: password) { (dataResult, error) in
        if error != nil {
            print(error!)
            loginSuccess = false
        } else {
            print("logged in \(email)")
            loginSuccess = true
        }
        print("end of closure")
    }

    print("Returning -- \(loginSuccess)\n\n\n")
    return loginSuccess
}

但是,当被调用时,它似乎一直运行到它打印“结束关闭”,如果提供了正确的电子邮件和密码,则结束打印“登录”,但没有更多。 “Returning...”永远不会被打印出来。有什么理由吗? 谢谢。

【问题讨论】:

    标签: ios swift firebase firebase-authentication


    【解决方案1】:

    因为它是异步的

    func tryLogin(email: String, password: String,completion:@escaping(_ res:Bool) -> Void ) {
    
        Auth.auth().signIn(withEmail: email, password: password) { (dataResult, error) in
            if error != nil {
                print(error!)
                completion(false)
            } else {
                print("logged in \(email)")
                completion(true)
            }
            print("end of closure")
        }
    
    }
    

    //

    打电话

    tryLogin(email:<#email#>,password:<#password#>) {  (res) in
      print(res)
    }
    

    【讨论】:

    • 哈!正如我要说的那样,这是因为它是异步发生的!
    • 刚刚看到您的编辑要致电 - 谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-14
    • 1970-01-01
    • 1970-01-01
    • 2014-06-18
    • 2018-04-12
    • 2011-08-12
    • 2020-03-10
    相关资源
    最近更新 更多