Я работаю для приложения iOS с использованием AWS. Я пытаюсь получить элементы из моей DynamoDB таблицы, но я получаю сообщение об ошибке (время от времени это работает !!! Как 4 часа работает, то идет вниз)iOS - Войдите в систему с Facebook, но все еще получая: «Недопустимый доступ не поддерживается для этого пула идентификаторов»
{
__type=com.amazon.coral.service#AccessDeniedException,
Message=User:arn:aws:sts::306752704279:
assumed-role/Cognito_equo_MOBILEHUB_1429140868Unauth_Role/CognitoIdentityCredentials
is not authorized to perform: dynamodb:Query on resource:
arn:aws:dynamodb:us-east-1:306752704279:table/equo-mobilehub-1429140868-TripActive/index/searchByOwner
}
Я не хочу, чтобы мое приложение, чтобы иметь Неавторизованные пользователи, но я вхожу в LOGIN IN, прежде чем вызывать запрос DynamoDB. Может кто-нибудь мне помочь? Вот мой код для запроса: (я использую де сгенерированный код для LogIn)
-(void) getUserHorsesWithMax: (int)pMax page:(int) pPage {
dispatch_async(dispatch_get_main_queue(), ^{
loading = true;
AWSCognitoCredentialsProvider *credentialsProvider = [[AWSCognitoCredentialsProvider alloc] initWithRegionType:AWSRegionUSEast1
identityPoolId:@"us-east-1:a1372699-48b0-499a-bf17-84811860a8bb"];
[[credentialsProvider getIdentityId] continueWithBlock:^id(AWSTask *task) {
if (task.error) {
NSLog(@"Error: %@", task.error);
}
else {
// the task result will contain the identity id
NSString *cognitoId = task.result;
AWSDynamoDBObjectMapper *dynamoDBObjectMapper = [AWSDynamoDBObjectMapper defaultDynamoDBObjectMapper];
AWSDynamoDBQueryExpression *queryExpression = [AWSDynamoDBQueryExpression new];
queryExpression.indexName = @"searchByOwner";
queryExpression.expressionAttributeValues = @{@":owID":cognitoId};
queryExpression.keyConditionExpression = @"ownerId=:owID";
[[dynamoDBObjectMapper query:[TripActive class]
expression:queryExpression]
continueWithBlock:^id(AWSTask *task) {
loading = false;
if (task.error) {
NSLog(@"The request failed. Error: [%@]", task.error);
}
if (task.exception) {
NSLog(@"The request failed. Exception: [%@]", task.exception);
}
if (task.result) {
dispatch_async(dispatch_get_main_queue(), ^{
AWSDynamoDBPaginatedOutput *paginatedOutput = task.result;
horses = [NSMutableArray new];
for (Horse *horse in paginatedOutput.items) {
//Do something with horse.
if (self.segmentedTrips.selectedSegmentIndex == FUTURE_TRIPS) {
} else if (self.segmentedTrips.selectedSegmentIndex == ACTIVE_TRIPS) {
[horses addObject:horse];
} else if (self.segmentedTrips.selectedSegmentIndex == PAST_TRIPS) {
}
}
[UIView animateWithDuration:0.2 animations:^(void) {
self.tripsTableView.alpha = 1.0f;
} completion:^(BOOL finished) {
self.tripsTableView.hidden = false;
}];
[self.tripsTableView reloadData];
});
}
return nil;
}];
}
return nil;
}];
});
}
ПОЖАЛУЙСТА ПОМОГИТЕ МНЕ!
У вас есть данные в tsk.result ..... или нет. –
Задача. Результат, содержащий идентификатор Cognito, на самом деле получает Real Cognito ID @AbhishekMishra –