类型'AuthDataResult'的值没有成员'providerID'Firebase 5.0

Tah*_*ova 1 ios firebase firebase-authentication

我有最新版本的FirebaseAuth 5.0的问题,这是我的代码:

func registerUser (withEmail email: String, andPassword password: String, userCreationComplete: @escaping (_ status: Bool, _ error: Error?) -> ()){
    Auth.auth().createUser(withEmail: email, password: password) { (user, error) in
        guard let user = user else{
            userCreationComplete(false, error)
            return
        }
        let userData = ["provider": user.providerID, "email": user.email]
        DataService.instance.createDBUser(uid: user.uid, userData: userData)
        userCreationComplete(true, nil)
    }

}
Run Code Online (Sandbox Code Playgroud)

问题是“类型'AuthDataResult'的值没有值“ ProviderID”“但在Firebase 4中,此方法有效。谢谢!

Jen*_*son 5

根据参考文档,该createUser函数通过传递一个完成块(FIRAuthDataResult?, Error?)FirAuthDataResult与并不相同User,但它具有一个Useras属性,可以这样访问:

func registerUser (withEmail email: String, andPassword password: String, userCreationComplete: @escaping (_ status: Bool, _ error: Error?) -> ()){
    Auth.auth().createUser(withEmail: email, password: password) { (authResult, error) in
        guard let user = authResult.user else {
            userCreationComplete(false, error)
            return
        }
        let userData = ["provider": user.providerID, "email": user.email]
        DataService.instance.createDBUser(uid: user.uid, userData: userData)
        userCreationComplete(true, nil)
    }
}
Run Code Online (Sandbox Code Playgroud)