0

Я пытаюсь использовать Мобильный концентратор в первый раз. Я создал образец приложения и пользовательский вход только через facebook. Моя главная проблема заключается вКак использовать cognito для аутентификации пользователя с помощью мобильного концентратора?

  1. Как узнать это первый Войти время пользователя или существовали до
  2. Как синхронизировать данные AWS Cognito набора данных

Для решения первого вопроса я придумал это решение для проверки набора данных пользователя, если оно пустое, тогда это первый раз, когда пользователь присоединился.

Для того, чтобы сделать это в приложение делегата didFinishLaunchingWithOptions:

AWSCognitoCredentialsProvider *credentialsProvider = [[AWSCognitoCredentialsProvider alloc] 
                 initWithRegionType:AWSRegionUSEast1 
                 identityPoolId:@"us-east-1:pool id is here"]; 

AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUSEast1 credentialsProvider:credentialsProvider]; 



[AWSServiceManager defaultServiceManager].defaultServiceConfiguration = configuration; 

А потом я пытаюсь сделать это:

AWSCognito *syncClient = [AWSCognito defaultCognito]; 

// Create a record in a dataset and synchronize with the server 
AWSCognitoDataset *dataset = [syncClient openOrCreateDataset:@"Sample"]; 
[dataset setString:@"test2" forKey:@"test"]; 
[[dataset synchronize] continueWithBlock:^id(AWSTask *task) { 
    // Your handler code here 
    return nil; 
}]; 

[dataset synchronize]; 

Там нет набора данных для пользователя на сервере. Я пытаюсь создать этот набор данных. Но проблема в том, что [AWSCognito defaultCognito] возвращает null. Я проверил документацию, и он говорит:

Возвращает клиент обслуживания singleton. Если объект singleton не существует , SDK создает клиент службы по умолчанию с defaultServiceConfiguration из [AWSServiceManager defaultServiceManager]. Ссылка на этот объект поддерживается SDK, и вам не нужно сохранять его вручную. Возвращает nil, если поставщик учетных данных не является экземпляром поставщика AWSCognitoCredentials .

Я не уверен, что мне не хватает. Почему, когда я называю этот синглтон, он возвращает null!

Как проверить, является ли поставщик учетных данных экземпляром поставщика AWSCognitoCredentials?

Я проверил в браузере идентификации в службах Cognito. Создается новая идентификация, но нет набора данных. может ли это быть чем-то связанным с ролями и IAM?

ответ

1

Вы должны следовать примеру проекта мобильных приложений AWS Mobile Hub, который вы можете загрузить со страницы «Интеграция» в Mobile Hub. Предполагая, что вы включили функцию «Хранилище пользовательских данных» в своем проекте Mobile Hub, этот образец включает все необходимые записи файла Info.plist, которые позволят Amazon Cognito. Вы также должны прочитать все инструкции по интеграции на странице «Интеграция» консоли AWS Mobile Hub, чтобы убедиться, что вы не пропустили никаких других шагов интеграции.

С уважением,
Andrew C
AWS Mobile Developer Experience

Смежные вопросы