#ios #swift #amazon-web-services #amazon-cognito
#iOS #swift #amazon-веб-сервисы #amazon-cognito
Вопрос:
Я пытаюсь зарегистрировать устройство в Cognito при входе в наше приложение для iOS с помощью AWS Mobile SDK. Я ссылаюсь на сообщение в блоге AWS об отслеживании и запоминании устройств с использованием Amazon Cognito в ваших пользовательских пулах, но я получаю нулевой результат, и устройство не отображается для пользователя в Cognito. Шаги, которые я выполнил, описаны в сообщении в блоге AWS и показаны ниже. Я также включил описание возврата null. Кто-нибудь может помочь мне понять, чего мне не хватает, или предложить другой способ попробовать.
// User Sign In Functions
CognitoManager.shared.login(emailId, password: password, callback: { (success: Bool, error: NSError?) -> (Void) in
if(success)
{
let lc = LicenseCheck()
lc.getLicenseUserInfoAgain(_email: emailId)
let response = CognitoManager.shared.registerUser?.updateDeviceStatus(true)
print("response (response)")
}
func updateDeviceStatus(_ email : String){
let user = pool!.getUser(email)
user.updateDeviceStatus(true)
let deviceToken = UserDefaults.standard.value(forKey: LoggedInUser.shared.deviceToken) as! String
let response = user.updateDeviceStatus(deviceToken, remembered: true)
response.continueOnSuccessWith { (task :AWSTask<AWSCognitoIdentityUserUpdateDeviceStatusResponse>) -> Any? in
guard task.error == nil else {
print("Error")
return nil
}
print("Success")
return nil
}
}
**// Return Value
response Optional(<AWSTask: 0x127644f50; completed = YES; cancelled = NO; faulted = YES; result = (null)>)**
Комментарии:
1. можете ли вы распечатать ошибку?
print(task.error)
2. Ответ, который я получаю при вызове метода updateDeviceStatus, — это ответ <AWSTask: 0x12b31ddb0; завершено = НЕТ; отменено = НЕТ; ошибка = НЕТ;>. Я предполагаю, что блок continueWithSuccess не вызывается и не может перейти в этот блок кода и не может распечатать задачу.ошибка
3. не используйте continueWithSuccess, просто используйте continue, чтобы перехватить ошибку
4. task.error не является обязательным (домен ошибок = com.amazonaws. AWSCognitoIdentityProviderErrorDomain Code= 13 «(null)» userInfo={__type= InvalidParameterException, сообщение = 1 обнаружена ошибка проверки: значение ‘ZbDQMwP8AlqNAqRpM228gtorrvHCcIRNR3mxmS9SBvs=’ в ‘DeviceKey’ не удалось выполнить ограничение: участник должен удовлетворять шаблону регулярных выражений: [ w-] _[0-9a-f-] })
5. итак, ваш ключ устройства недействителен