2017-12-01 49 views
-1

AWS Cognitoを使用してユーザーにサインアップしようとしています。サインアップメソッドのコールバックはerr and data返し、データパラメータがusersubまたはUUID(:671fff45-77aa-4867-b11f-47c8bfa246a9例えばUUIDの)を持たなければならないことを登録時にユーザーのUUID(サブ)を取得できません:Amazon Cognito

私はthese docsに示すサインアップ方法から理解しています。 私はそれを取得する方法(data.UserSub)を呼び出すことができません、SWIFTは、型の値

エラーがスローされますが、「AWSCognitoIdentityUserPoolSignUpResponse」はメンバー を持っていない「UserSub」

は、第三print文を参照してください。完全な文脈を理解するために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)") 

       } 

} 
} 

答えて

0
+0

は、私が使用していiOS用SDKのバージョンです:あなたはおそらくあなただけの間違ったケースを持っている最新のバージョンを使用している場合、それは.userSub 参照してくださいする必要があります 'ポッド「AWSCore」、「〜> 2.5.0 ' 'pod' AWSCognitoIdentityProvider '、'〜> 2.5.0'' – kurrodu

+0

ユーザがサインインしたときに' userSub'も取得することができます。 – kurrodu

+1

最も簡単な方法は、ユーザオブジェクトに対して 'getDetails'メソッドを呼び出すことです。 – behrooziAWS

関連する問題