Swift 注册期间无法获取用户的UUID(sub):Amazon Cognito

Swift 注册期间无法获取用户的UUID(sub):Amazon Cognito,swift,amazon-web-services,aws-cognito,Swift,Amazon Web Services,Aws Cognito,我正在尝试使用AWS Cognito注册用户 我从中显示的注册方法中了解到,注册方法的回调返回err和data,数据参数应具有usersub或UUID(例如UUID:671FF45-77aa-4867-b11f-47c8bfa246a9)。 我无法调用方法(data.UserSub)来检索它,swift抛出了一个错误 “AWSCognitoIdentityUserPoolSignUpResponse”类型的值没有成员 “UserSub” 请参阅SignUp()中的第三条打印语句以了解完整的上下文

我正在尝试使用AWS Cognito注册用户

我从中显示的注册方法中了解到,注册方法的回调返回
err和data
,数据参数应具有usersub或UUID(例如UUID:671FF45-77aa-4867-b11f-47c8bfa246a9)。 我无法调用方法(data.UserSub)来检索它,swift抛出了一个错误

“AWSCognitoIdentityUserPoolSignUpResponse”类型的值没有成员 “UserSub”

请参阅
SignUp()
中的第三条打印语句以了解完整的上下文

class Login: UIViewController{
    var pool: AWSCognitoIdentityUserPool?

     override func viewDidLoad() {
        super.viewDidLoad()

       let AWSCognitoUserPoolsSignInProviderKey = "UserPool"
        self.pool = AWSCognitoIdentityUserPool.init(forKey: AWSCognitoUserPoolsSignInProviderKey)

       signUp()

    }

}


func signUp(){

    let userNameValue = "+" + UserData.mobileNumberWithCountryCode
        print("userNameValue: \(userNameValue)")
    let passwordValue = "somePassword" 

        var attributes = [AWSCognitoIdentityUserAttributeType]()

    self.pool?.signUp(userNameValue, password: passwordValue, userAttributes: attributes, validationData: nil).continueWith {[weak self] (task) -> Any? in

    guard let strongSelf = self else {
                    print("Returninig nil on Strong Self")
                    return nil
                }

                DispatchQueue.main.async(execute: {
                    if let error = task.error as? NSError {

                        print("There is an error")

                    }else if let result = task.result  {
                        // The above line prints userName
                        print("userName after sub:\(result.user.username)") 

                       //the below line throws a swift error: Value of type 'AWSCognitoIdentityUserPoolSignUpResponse' has no member 'UserSub'
                       print("userName after sub:\(result.UserSub)")

               }

}
}

您正在使用哪个版本的SDK?如果您使用的是最新版本,可能只是大小写有误,那么应该是
.userSub

请参阅:

以下是我正在使用的iOS SDK版本:
pod'AWSCore',“~>2.5.0”
pod'AWSCognitoIdentityProvider',“~>2.5.0”
当用户登录时,我如何获得
userSub
。最简单的方法是在用户对象上调用
getDetails
方法。当我在SignIn方法中的
getDetails()
之前打印
self.user
时,我会获得
Optional()
,在登录期间,下面的代码不会通过,你能建议我如何在self.response=task.result打印(“self.response:\(self.response)”)中获取userSub?
self.user?.getDetails().continueOnSuccessWith{(task)->AnyObject?返回nil}
self.user?.getDetails().continueOnSuccessWith{(task)->AnyObject?in for属性in(task.result?.userAttributes)!{if(attribute.name==“sub”){print(“userSub:(attribute.value!)”)}返回self;}