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)")
}
}
}
は、私が使用していiOS用SDKのバージョンです:あなたはおそらくあなただけの間違ったケースを持っている最新のバージョンを使用している場合、それは
.userSub
参照してくださいする必要があります 'ポッド「AWSCore」、「〜> 2.5.0 ' 'pod' AWSCognitoIdentityProvider '、'〜> 2.5.0'' – kurroduユーザがサインインしたときに' userSub'も取得することができます。 – kurrodu
最も簡単な方法は、ユーザオブジェクトに対して 'getDetails'メソッドを呼び出すことです。 – behrooziAWS