SwiftUI将数据从委托方法传递给View

时间:2020-04-15 17:52:33

标签: ios swift firebase swiftui

我已经通过Firebase实现了Facebook登录,当我致电Auth.auth().signIn()时,我得到了一些结果和一个错误。我找不到将这种数据传递给我的一个视图的方法。我无法创建回调函数,因为它是由loginButton()自动调用的。如何将这种结果和错误传递给我的一种观点?

我确实有一个addStateDidChangeListener,但是,这并没有给我具体的Facebook登录错误。 No permissions

Auth.auth().addStateDidChangeListener({ (auth, user) in
    //
})

class Coordinator: NSObject, LoginButtonDelegate {

    func loginButton(_ loginButton: FBLoginButton, didCompleteWith result: LoginManagerLoginResult?, error: Error?) {
        if error != nil {
            // print(error?.localizedDescription)
            return
        }

        if let currentAccessToken = AccessToken.current {
            let credential = FacebookAuthProvider.credential(withAccessToken: currentAccessToken.tokenString)

            Auth.auth().signIn(with: AuthCredential) { (AuthDataResult?, Error?) in
                // pass AuthDataResult and Error to view
            }
        }
    }

    func loginButtonDidLogOut(_ loginButton: FBLoginButton) {
        try? Auth.auth().signOut()
    }
}

0 个答案:

没有答案