Проблема Я успешно реализовал аутентификацию пула удостоверений. Мои базовые AWS запросы к Dynamo et c работают без проблем.
Используя удостоверение пула удостоверений, я пытаюсь управлять набором данных, связанным с удостоверением. Я хочу создать простой набор данных и назначить пары ключ-значение.
Для этого я использую API AWSCognito.
Моя проблема в том, что я получаю сообщение об ошибке после вызова .synchronize (). continueWith (блок :). Ответ сервера:
{"code":"BadRequest","message":"Identity pool id is missing or incorrect in the request URI.","type":"client"}
Вопросы
- Как установить идентификатор пула?
- Правильно ли моя AWSConfiguration. json?
Предоставьте фрагменты кода (если применимо) Вот мой файл AWSconfigurationFile
{
"UserAgent": "aws-amplify/cli",
"Version": "0.1.0",
"IdentityManager": {
"Default": {}
},
"CredentialsProvider": {
"CognitoIdentity": {
"Default": {
"PoolId": "us-east-1:f906d38e-f3c3-45a9-8fef-457e8288aa91",
"Region": "us-east-1"
}
}
},
"CognitoUserPool": {
"Default": {
"PoolId": "us-east-1_GbwGGJCm6",
"AppClientId": "xxxxxxx",
"AppClientSecret": "yyyyyyyy",
"Region": "us-east-1"
}
},
"Auth": {
"Default": {
"OAuth": {
"WebDomain": "myapp88c46c2d-88c46c2d-dev.auth.us-east-1.amazoncognito.com",
"AppClientId": "xxxxxxx",
"AppClientSecret": "yyyyyyy",
"SignInRedirectURI": "myapp://",
"SignOutRedirectURI": "myapp://",
"Scopes": [
"phone",
"email",
"openid",
"profile",
"aws.cognito.signin.user.admin"
]
},
"authenticationFlowType": "USER_SRP_AUTH"
}
},
"DynamoDBObjectMapper": {
"Default": {
"Region": "us-east-1"
}
},
"S3TransferUtility": {
"Default": {
"Bucket": "xxxxx-dev",
"Region": "us-east-1"
}
},
"S3": {
"Default": {
"Bucket": "xxxxx-dev",
"Region": "us-east-1"
}
},
"Cognito": {
"Default": {
"PoolId": "us-east-1:f906d38e-f3c3-45a9-8fef-457e8288aa91",
"Region": "us-east-1"
}
}
}
Код для создания набора данных профиля и сохранения ключа и значения *
let dataset = AWSCognito.default().openOrCreateDataset("profile")
let data = dataset.getAll()
dataset.setString("horse", forKey: "animal")
dataset.synchronize()?.continueWith(block: { (task:AWSTask<AnyObject>) -> Any? in
print("Faulted?: \(task.isFaulted)")
return nil
})
Приведенный выше код получает ответ от сервера как
{"code":"BadRequest","message":"Identity pool id is missing or incorrect in the request URI.","type":"client"}
Какие AWS сервисы вы используете? Amplify (1.0.5) AWSMobileClient (2.15) - Для объединения Войдите в AWSCognito (2.15) - Для создания набора данных и управления им.
Среда (заполните следующую информацию):
- Amplify ( 1.0.5)
- AWSMobileClient (2.15) - для входа в федеративную систему
- AWSCognito (2.15) - для создания набора данных и управления им.
- Версия SDK: 2.15
- Менеджер зависимостей: Cocoap ods
- Версия Swift: 5.0
Информация об устройстве (заполните следующую информацию):
- Устройство: имитатор и физическое
- iOS Версия: 14 Beta
- Спецификация c для симуляторов: