動作しない私は、iOSアプリのために迅速に認証されていないユーザーを経由してCognito IDを取得するための次のコードを持っている: -Cognito getIdentityIdは()認証されていないユーザーのために迅速に
import Foundation
import AWSCore
import AWSCognito
class CognitoInit {
func getCognitoIdentityId() -> String {
let credentialsProvider = AWSCognitoCredentialsProvider(regionType:.USEast1,
identityPoolId:"My_idenitity_pool_id_in_aws")
let configuration = AWSServiceConfiguration(region:.USEast1, credentialsProvider:credentialsProvider)
AWSServiceManager.defaultServiceManager().defaultServiceConfiguration = configuration
credentialsProvider.getIdentityId().continueWithBlock { (task: AWSTask!) -> AnyObject! in
if (task.error != nil) {
return task.error?.localizedDescription
}
else {
// the task result will contain the identity id
return task.result
}
return nil
}
return "DEFAULT_COGNITO_ID"
}
}
をするときgetCognitoIdentityId()スタブでViewControllerは常に "DEFAULT_COGNITO_ID"(私はエミュレータでそれを実行しています)を返します呼び出されます。デバッガを介してコードにステップインすると、非同期タスクが内部で実行されないことがわかります(if(task.error!= nil){return nilがバイパスされます)
私には何かがありません。
- を考えることができ、別途?
- を有効にする必要がありますネットワーク/非同期呼び出しのために必要なアクセス許可は、私がしなければならないCognitoアイデンティティプールに必要な構成がありますあります。
- エミュレータでブロックされた非同期タスクはありますか?
助けてください。私は迅速な開発に新しいです。
Androidで似たようなことをしていましたが、すぐに戻ってきました。アイデンティティIDを取得するための待機時間に関する推奨事項 –
Androidは非同期ではなく、キャッシュされている可能性があります。時間はデバイスごとに十分に異なりますが、それは少し推測ですが、十分に時間を取ることができます。 –
いいえ私はそれをaysncタスクに入れるために明示的な努力をしています。 –