gpt4 book ai didi

android - 从 Cognito 用户池获取用户属性

转载 作者:行者123 更新时间:2023-11-29 18:58:00 28 4
gpt4 key购买 nike

我尝试使用以下代码从 AWS 的 Cognito 用户池中获取用户的属性 (email-id),但它似乎不起作用。

如何做到这一点,我的代码有什么问题?

AWSMobileClient.getInstance().initialize(this, new AWSStartupHandler() {
public DynamoDBMapper dynamoDBMapper;

@Override
public void onComplete(AWSStartupResult awsStartupResult) {
PinpointConfiguration pinpointConfig = new PinpointConfiguration(
getApplicationContext(),
AWSMobileClient.getInstance().getCredentialsProvider(),
AWSMobileClient.getInstance().getConfiguration());
pinpointManager = new PinpointManager(pinpointConfig);

// Start a session with Pinpoint
pinpointManager.getSessionClient().startSession();

AmazonDynamoDBClient dynamoDBClient = new AmazonDynamoDBClient(AWSMobileClient.getInstance().getCredentialsProvider());
this.dynamoDBMapper = DynamoDBMapper.builder().dynamoDBClient(dynamoDBClient).awsConfiguration(AWSMobileClient.getInstance().getConfiguration()).build();
identityManager=new IdentityManager(getApplicationContext(),AWSMobileClient.getInstance().getConfiguration());
CognitoUserPool userPool = new CognitoUserPool(getApplicationContext(),"xx-xxxxx-xxxx-xx","xxxxxxxxxxxxxxxxx","xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");

CognitoUser user = userPool.getUser(identityManager.getCachedUserID());
GetDetailsHandler handler = new GetDetailsHandler() {
@Override
public void onSuccess(CognitoUserDetails cognitoUserDetails) {
Map user = cognitoUserDetails.getAttributes().getAttributes();
Collection<Object> keys = user.keySet();
for (Object entry:keys
) {
Log.d("key",entry.toString());
}
}

@Override
public void onFailure(Exception exception) {
Log.d("details","fail");
}
};
user.getDetails(handler);

最佳答案

尝试使用 entrySet() 并确保 userPool 具有 (email-id) 属性

    @Override
public void onSuccess(CognitoUserDetails cognitoUserDetails) {
Map<String, String> user = cognitoUserDetails.getAttributes().getAttributes();
for (Map.Entry<String, String> entry : user.entrySet()) {
String key = entry.getKey();
String value = entry.getValue();
Log.d("key", "key: " + key);
Log.d("key", "value: " + value);
settings.edit().putString(key, value).apply();
}
}

关于android - 从 Cognito 用户池获取用户属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49596835/

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