CognitoUserPool userPool = new CognitoUserPool(this, AWSMobileClient.getInstance().getConfiguration());给出空值
CognitoUserPool userPool = new CognitoUserPool(this, AWSMobileClient.getInstance().getConfiguration()); is giving null value
我正在使用 AWS cognito 登录。我不想对 userPoolId、clientId、clientSecret 和区域的值进行硬编码。我找到了使用
的方法
CognitoUserPool userPool = new CognitoUserPool(this, AWSMobileClient.getInstance().getConfiguration());
但是 userPool 给出了空值。
awsconfiguration.json放在res/raw/awsconfiguration.json
提前感谢您的帮助!!!
详细说明 Karthikeyan 在评论中提出的观点,您必须确保 AWSMobileClient 确实已初始化,然后才能使用它获取 AWS 配置。以下代码段演示了一种实现您正在寻找的方法:
CognitoUserPool cup;
final CountDownLatch latch = new CountDownLatch(1);
AWSMobileClient.getInstance().initialize(getApplicationContext(), new Callback<UserStateDetails>() {
@Override
public void onResult(UserStateDetails userStateDetails) {
Log.i("INIT", "onResult: " + userStateDetails.getUserState());
latch.countDown();
}
@Override
public void onError(Exception e) {
Log.e("INIT", "Initialization error.", e);
latch.countDown();
}
}
);
try {
latch.await();
cup = new CognitoUserPool(getApplicationContext(), AWSMobileClient.getInstance().getConfiguration());
} catch (InterruptedException e) {
e.printStackTrace();
}
希望对您有所帮助!
根据文档,
https://aws-amplify.github.io/docs/sdk/android/authentication
您需要转到 MainActivity 并在 onCreate() 运行 initialize() 例程中:
AWSMobileClient.getInstance().initialize(getApplicationContext(), new Callback<UserStateDetails>() {
@Override
public void onResult(UserStateDetails userStateDetails) {
Log.i("INIT", "onResult: " + userStateDetails.getUserState());
}
@Override
public void onError(Exception e) {
Log.e("INIT", "Initialization error.", e);
}
}
);
因为你还没有登录,所以它会打印一个 SIGNED_OUT 的状态。
我正在使用 AWS cognito 登录。我不想对 userPoolId、clientId、clientSecret 和区域的值进行硬编码。我找到了使用
的方法CognitoUserPool userPool = new CognitoUserPool(this, AWSMobileClient.getInstance().getConfiguration());
但是 userPool 给出了空值。
awsconfiguration.json放在res/raw/awsconfiguration.json
提前感谢您的帮助!!!
详细说明 Karthikeyan 在评论中提出的观点,您必须确保 AWSMobileClient 确实已初始化,然后才能使用它获取 AWS 配置。以下代码段演示了一种实现您正在寻找的方法:
CognitoUserPool cup;
final CountDownLatch latch = new CountDownLatch(1);
AWSMobileClient.getInstance().initialize(getApplicationContext(), new Callback<UserStateDetails>() {
@Override
public void onResult(UserStateDetails userStateDetails) {
Log.i("INIT", "onResult: " + userStateDetails.getUserState());
latch.countDown();
}
@Override
public void onError(Exception e) {
Log.e("INIT", "Initialization error.", e);
latch.countDown();
}
}
);
try {
latch.await();
cup = new CognitoUserPool(getApplicationContext(), AWSMobileClient.getInstance().getConfiguration());
} catch (InterruptedException e) {
e.printStackTrace();
}
希望对您有所帮助!
根据文档,
https://aws-amplify.github.io/docs/sdk/android/authentication
您需要转到 MainActivity 并在 onCreate() 运行 initialize() 例程中:
AWSMobileClient.getInstance().initialize(getApplicationContext(), new Callback<UserStateDetails>() {
@Override
public void onResult(UserStateDetails userStateDetails) {
Log.i("INIT", "onResult: " + userStateDetails.getUserState());
}
@Override
public void onError(Exception e) {
Log.e("INIT", "Initialization error.", e);
}
}
);
因为你还没有登录,所以它会打印一个 SIGNED_OUT 的状态。