AWS Метод Cognito GetDetails () не вызывается - PullRequest
0 голосов
/ 14 февраля 2020

Я использую AWS Cognito для моего приложения. Войти и зарегистрироваться. В моем приложении сначала пользователь регистрируется по электронной почте и номеру телефона. После этого я перенаправляю на экран проверки (здесь OTP отправляет Cognito). После проверки пользователь OTP создаст несколько хранилищ, а затем войдет в панель управления. В этом потоке я хочу получить Атрибут сведений о пользователе от Cognito при успешном выполнении кода проверки. Я реализовал метод getDetails(), чтобы получить userAttributes в коде проверки успешно, но он не вызывается. Мне нужно userAttributes когда время создания магазина. Любая помощь приветствуется.

Вот мой код:

@IBAction func submitButtonAction(_ sender: GradientButton) {


    let code = firstChar+secondChar+thirdChar+fourthChar+fifthChar+sixthChar
    guard code.count == 6 else{
        self.showAlert(message: ErrorMessages.kEnterValidOTP)
        return
    }

    let currentUser = self.userPool?.getUser("xxxx@gmail.com")
    currentUser?.confirmSignUp(code, forceAliasCreation: true).continueWith(block: { [weak self] (task) -> Any? in
        guard let strongSelf = self else { return nil }
        DispatchQueue.main.async {
            if let error = task.error as NSError? {
                if let message = error.userInfo["message"] as? String{
                    self?.showAlert(message: message, onOkAction: {
                        strongSelf.clearTextFieldData()
                    })
                }else{
                    self?.showAlert(message: error.localizedDescription, onOkAction: {
                        strongSelf.clearTextFieldData()
                    })
                }
            }else{
                print(task.result)
                strongSelf.clearTextFieldData()
                print(AWSUserDetails.shared.userPool.currentUser()?.username)
                let user = AWSUserDetails.shared.userPool.currentUser()
                 //I've tried the above `user` and `currentUser`. But not working.
                user?.getDetails().continueOnSuccessWith(block: { (task) -> Any? in
                    DispatchQueue.main.async {
                        if task.error == nil{
                            print(task.error)
                        }else{
                            print(task.result)
                        }
                    }
                })

           //     strongSelf.performSegue(withIdentifier: SegueIdentifiers.createStoreSegue, sender: self)
            }
        }

        return nil
    })

}
...