android - 放大授权: Unable to add User to the Pool

标签 android amazon-web-services authentication aws-amplify

我正在尝试使用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/

相关文章:

android - android URLConnection 中的 java.io.FileNotFoundException

android - 如何使用 AnnotationProcessor 在带有特定包的 java(生成)目录中编写 kotlin 文件

amazon-web-services - 如何将 DBT 与 AWS Managed Airflow 结合使用?

python - AWS 上的 Windows Server 2012 上的虚拟监视器或显示器

mysql - AWS Aurora 性能架构,如何启用 events_statements_history

reactjs - Clerk 中间件在 Next 12.2.2 的生产中崩溃

c# - ASP.NET MVC 5 应用程序的 Microsoft 身份验证循环

java - 如何在长按主页、后退或最近使用的应用程序按钮时打开我的 Android 应用程序?

php - 重置密码,更新数据库后登录错误

java - Android 以编程方式设置 autoLink 属性