Swift 类型为'的值;AuthDataResult';没有成员';providerID';

Swift 类型为'的值;AuthDataResult';没有成员';providerID';,swift,firebase-authentication,Swift,Firebase Authentication,我对最新版本的FirebaseAuth 5.0有问题这是我的代码: if let email = emailField.text, let password = passwordField.text { Auth.auth().signIn(withEmail: email, password: password) { (user, error) in if error == nil { if let user = user {

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

if let email = emailField.text, let password = passwordField.text {          
    Auth.auth().signIn(withEmail: email, password: password) { (user, error) in
        if error == nil {
           if let user = user {
               if self.segmentedControl.selectedSegmentIndex == 0 {
                  let userData = ["provider": user.providerID] as [String: Any]
问题是“AuthDataResult类型的值”没有值“ProviderID”,但在firebase 4中,此方法有效。谢谢

的属性用户具有
providerID
。在完成< /代码>中,不应考虑<代码> AuthDATA结果>代码> <代码>用户< /代码>。您可以访问以下
providerId

if let email = emailField.text, let password = passwordField.text {          
    Auth.auth().signIn(withEmail: email, password: password) { (authData, error) in
        if error == nil {
           if let user = authData?.user {
               if self.segmentedControl.selectedSegmentIndex == 0 {
                  let userData = ["provider": user.providerID] as [String: Any]
具有具有
providerID
的属性用户。在完成< /代码>中,不应考虑<代码> AuthDATA结果>代码> <代码>用户< /代码>。您可以访问以下
providerId

if let email = emailField.text, let password = passwordField.text {          
    Auth.auth().signIn(withEmail: email, password: password) { (authData, error) in
        if error == nil {
           if let user = authData?.user {
               if self.segmentedControl.selectedSegmentIndex == 0 {
                  let userData = ["provider": user.providerID] as [String: Any]

你能问完整的问题吗?不清楚你在问什么。只是说得更清楚。你能问完整的问题吗?不清楚你在问什么。只是说得更清楚谢谢!!!!!但你能解释为什么我不应该考虑用户在完成吗?你可以使用<代码>用户<代码>或其他任何东西,但是它的类型仍然是<代码> AuthDATA结果< /代码>,它有属性用户(即,<代码> FIRUser < /代码>),所以<代码> PvaveReID应该在<代码> FIRUser < /Cord>对象上访问。例如,如果您将
AuthDataResult
命名为
user
,则如果let user=authData?,则上述示例中的user将更改为
if let user=user?.user
。谢谢!!!!!但你能解释为什么我不应该考虑用户在完成吗?你可以使用<代码>用户<代码>或其他任何东西,但是它的类型仍然是<代码> AuthDATA结果< /代码>,它有属性用户(即,<代码> FIRUser < /代码>),所以<代码> PvaveReID应该在<代码> FIRUser < /Cord>对象上访问。例如,如果将
AuthDataResult
命名为
user
,则上述示例中的该语句
if let user=authData?.user
将更改为
if let user=user?.user