我正在尝试使用Amplify Auth将用户添加到 Cognito 用户池。 我写了这个简单的代码,但即使它不起作用:
try {
Amplify.addPlugin(new AWSCognitoAuthPlugin());
} catch (AmplifyException e) {
e.printStackTrace();
}
Amplify.Auth.signUp(
"dragon",
"Password123@",
AuthSignUpOptions.builder()
.userAttribute(AuthUserAttributeKey.email(), "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="d1bca8b4bcb0b8bdb0b5b5a3b4a2a291b6bcb0b8bdffb2bebc" rel="noreferrer noopener nofollow">[email protected]</a>")
.build(),
result -> Log.i("AuthQuickStart", "Result: " + result.toString()),
error -> Log.e("AuthQuickStart", "Sign up failed", error)
);
它将此错误打印到 logcat:
E/AuthQuickStart: Sign up failed
AmplifyException {message=Sign up failed, cause=java.lang.NullPointerException: Attempt to invoke virtual method 'void com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUserPool.signUp(java.lang.String, java.lang.String, com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUserAttributes, java.util.Map, com.amazonaws.mobileconnectors.cognitoidentityprovider.handlers.SignUpHandler)' on a null object reference, recoverySuggestion=See attached exception for more details}
at com.amplifyframework.auth.cognito.AWSCognitoAuthPlugin$2.onError(AWSCognitoAuthPlugin.java:1)
at com.amazonaws.mobile.client.internal.InternalCallback.call(InternalCallback.java:77)
at com.amazonaws.mobile.client.internal.InternalCallback.access$000(InternalCallback.java:34)
at com.amazonaws.mobile.client.internal.InternalCallback$1.run(InternalCallback.java:103)
at java.lang.Thread.run(Thread.java:764)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUserPool.signUp(java.lang.String, java.lang.String, com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUserAttributes, java.util.Map, com.amazonaws.mobileconnectors.cognitoidentityprovider.handlers.SignUpHandler)' on a null object reference
at com.amazonaws.mobile.client.AWSMobileClient$13.run(AWSMobileClient.java:1894)
at com.amazonaws.mobile.client.internal.InternalCallback$1.run(InternalCallback.java:101)
at java.lang.Thread.run(Thread.java:764)
最佳答案
您必须调用 Amplify.configure()
一次。应在添加插件之后、执行任何其他 Amplify 命令之前调用它。
Amplify 框架确实应该返回一条错误消息来说明这一点,而不是它现在正在执行的操作。这是框架错误报告的一个错误。
关于android - 放大授权: Unable to add User to the Pool,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62362726/