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