android应用程序中使用的AWS Appsync功能无法将数据插入DynamoDB

android应用程序中使用的AWS Appsync功能无法将数据插入DynamoDB,android,aws-amplify,aws-appsync,Android,Aws Amplify,Aws Appsync,我创建了一个android应用程序,旨在通过以下指定链接与AWS Amplify库一起工作, 和。 通过遵循文档,我能够正确地创建项目,并且通过使用AWS Amplify CLI,我能够设置Auth Cognito、API、Storage和Lambda函数。我还使用AWS amplify web控制台确认已经为项目创建了DynamoDB、Lambda函数(和index.js文件)和API 问题: 当我试图通过变异(aws appsync功能)以编程方式将数据写入数据库时,没有数据插入dynamo

我创建了一个android应用程序,旨在通过以下指定链接与AWS Amplify库一起工作, 和。 通过遵循文档,我能够正确地创建项目,并且通过使用AWS Amplify CLI,我能够设置Auth Cognito、API、Storage和Lambda函数。我还使用AWS amplify web控制台确认已经为项目创建了DynamoDB、Lambda函数(和index.js文件)和API

问题: 当我试图通过变异(aws appsync功能)以编程方式将数据写入数据库时,没有数据插入dynamodb

下面是我用来完成任务的代码

 private void save() {
        final String name = ((EditText) findViewById(R.id.editTxt_name)).getText().toString();
        final String description = ((EditText) findViewById(R.id.editText_description)).getText().toString();

        Toast.makeText(AddPetActivity.this, "inside save()", Toast.LENGTH_SHORT).show();

        CreatePetInput input = CreatePetInput.builder()
                .name(name)
                .description(description)
                .build();

        CreatePetMutation addPetMutation = CreatePetMutation.builder()
                .input(input)
                .build();
        ClientFactory.appSyncClient().mutate(addPetMutation).enqueue(mutateCallback);
    }

    // Mutation callback code
    private GraphQLCall.Callback<CreatePetMutation.Data> mutateCallback = new GraphQLCall.Callback<CreatePetMutation.Data>() {
        @Override
        public void onResponse(@Nonnull final Response<CreatePetMutation.Data> response) {
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    Log.d(TAG, "Successful in AddPetMutation");
                    Toast.makeText(AddPetActivity.this, "Added pet", Toast.LENGTH_SHORT).show();
                    AddPetActivity.this.finish();
                }
            });
        }
从日志中可以清楚地看出,库接收我们的数据并在内存和持久记录中创建,但随后它自己调用Dispose并取消变异并将其删除,变异回调永远不会命中,应用程序在该点上保持空闲

供参考: 在graphQL.schema文件中添加了以下架构

型号:Pet@model{ id:id! 名字:字符串! 描述:字符串 }

项目的build.gradle中,我添加了以下依赖项

classpath 'com.amazonaws:aws-android-sdk-appsync-gradle-plugin:2.9.+'
在应用程序的
build.gradle中,我添加了一个插件:

apply plugin: 'com.amazonaws.appsync'
以及以下依赖项:

implementation 'com.amazonaws:aws-android-sdk-appsync:2.8.+'
请帮助我了解如何克服这个问题


非常感谢您的帮助。

我建议在UI线程上运行响应处理程序之前,在onResponse中添加日志语句,并在OneError回调中添加日志语句,以查看是否报告了任何错误。通常报告的错误包括授权错误,其中未包含有效的授权令牌。@Karthikeyan,这正是问题所在,我已确定问题并解决了相同的问题。无论如何,感谢您的支持。您能否发布解决方案和根本原因,以帮助其他人?我建议在UI线程上运行响应处理程序之前,在onResponse中添加一条日志语句,并在OneError回调中添加一条日志语句,以查看是否报告了任何错误。通常报告的错误包括授权错误,其中未包含有效的授权令牌。@Karthikeyan,这正是问题所在,我已确定问题并解决了相同的问题。无论如何,谢谢你的支持。你能发布解决方案和根本原因吗?这样可以帮助其他人吗?
implementation 'com.amazonaws:aws-android-sdk-appsync:2.8.+'