AWSCognito - управление наборами данных
Проблема. Я успешно реализовал аутентификацию пула удостоверений. Мои базовые запросы AWS к Dynamo и т. Д. Работают без проблем.
Используя удостоверение пула удостоверений, я пытаюсь управлять набором данных, связанным с удостоверением. Я хочу создать простой набор данных и назначить пары ключ-значение.
Для этого я использую API AWSCognito.
Моя проблема в том, что я получаю сообщение об ошибке после вызова.synchronize(). ContinueWith(block:). Ответ сервера:
{"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) - для создания набора данных и управления им.
Окружающая среда (пожалуйста, заполните следующую информацию):
- Усиление (1.0.5)
- AWSMobileClient (2.15) - для федеративного входа
- AWSCognito (2.15) - для создания набора данных и управления им.
- Версия SDK: 2.15
- Менеджер зависимостей: Cocoapods
- Быстрая версия: 5.0
Информация об устройстве (пожалуйста, заполните следующую информацию):
- Устройство: симулятор и физическое
- Версия iOS: 14 бета
- Специально для тренажеров: