gpt4 book ai didi

ios - Cognito getIdentityId() 对未经身份验证的用户无法快速工作

转载 作者:行者123 更新时间:2023-11-28 06:38:39 29 4
gpt4 key购买 nike

我有以下代码用于通过未经身份验证的用户快速获取 IOS 应用程序的 Cognito ID:-

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"
}
}

当调用 stub ViewController 中的 getCognitoIdentityId() 时,它总是返回“DEFAULT_COGNITO_ID”(我在模拟器中运行它)。通过调试器进入代码显示异步任务没有在内部运行(从 if (task.error != nil) { 到 return nil 的整个代码块被绕过了。

我是不是漏掉了什么。我能想到的事情

  1. 网络/异步调用是否需要单独启用的权限?
  2. Cognito Identity Pool 中是否有我必须执行的必要配置。
  3. 异步任务是否在模拟器中被阻止?

请帮忙。我是快速发展的新手。

最佳答案

这听起来可能只是该调用的异步性质在起作用。您能否完全按照 documentation 中的描述尝试该示例? ,等待几秒钟,然后尝试通过

获取身份id
credentialsProvider.identityId

看看会发生什么?因为它是异步的,所以以这种方式设置它不会像您希望的那样工作,我认为。您需要事先启动异步调用。

关于ios - Cognito getIdentityId() 对未经身份验证的用户无法快速工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38533987/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com