Value of type 'AuthDataResult' has no member 'providerID' Firebase 5.0

不问归期 提交于 2019-12-13 18:22:16

问题


I have a problem with the newest version of FirebaseAuth 5.0 this is my code:

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)
    }

}

problem is "Value of type 'AuthDataResult' has no value "ProviderID" " But in firebase 4 this method worked. Thanks!


回答1:


According to the reference docs, the createUser function passes a completion block with (FIRAuthDataResult?, Error?). FirAuthDataResult is not the same as a User, but it has a User as a property, which can be accessed like this:

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)
    }
}



回答2:


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)
    }
}


来源:https://stackoverflow.com/questions/51589895/value-of-type-authdataresult-has-no-member-providerid-firebase-5-0

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!