2016-02-17 3 views
0

Я AWS Cognito и AWSCognitoDataset в приложении iOS.AWSCognitoCredentialsProvider.credentialsWithRegionType депрепаратирован. Что использовать вместо этого?

Я вызываю registerCognitoWithConfiguration(), но это устарело. Вместо этого следует использовать init(). Но тот, который, как мне кажется, мне нужно использовать, требует идентификатора, к которому у меня нет доступа до тех пор, пока я не пользуюсь credentialsProvider для вызова getIdentityId() - это уловка 22.

Итак, как я могу заменить registerCognitoWithConfiguration() ?

Digits.sharedInstance().authenticateWithViewController(... 
{session, error in 
if session != nil { 
    self.completeDigitsLogin() 
} else { 
    ... 
} 

func completeDigitsLogin() { 
    if let session = Digits.sharedInstance().session() { 
     AWSCognitoCredentialsProvider.credentialsWithRegionType(
      Constants.COGNITO_REGIONTYPE, 
      accountId:Constants.AWS_ACCOUNT_ID, 
      identityPoolId:Constants.COGNITO_IDENTITY_POOL_ID, 
      unauthRoleArn:"", 
      authRoleArn:Constants.COGNITO_ARN_AUTH_ROLE, 
      logins:["www.digits.com": makeTwitterSessionString(session)]) 

     let conf = AWSServiceConfiguration(
      region:Constants.COGNITO_REGIONTYPE, 
      credentialsProvider:credentialsProvider) 

     AWSCognito.registerCognitoWithConfiguration(config, forKey:"main") 

     credentialsProvider.getIdentityId().continueWithBlock { 
      (task:AWSTask!) -> AnyObject! in 

      let cognitoId = task.result as! String 
      print("CognitoId = \(cognitoId)") 

      let cognitoSync = AWSCognito(forKey:"main") 
      self.dataset = cognitoSync.openOrCreateDataset("Candidate") 
      self.dataset.setString(session.phoneNumber, forKey:"phone") 
      self.synchronizeDataset() 
     return nil 
     } 
    } 
} 

ответ

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