对AWS AppSync查询的响应没有任何数据。 (在Android应用中使用Amplify)

时间:2019-10-23 08:38:04

标签: android graphql aws-amplify aws-appsync aws-amplify-sdk-android

(我是初学者),我正在尝试使用Amplify从我的Android应用程序执行AppSync查询。我正在按照此页面中的步骤进行操作-https://aws-amplify.github.io/docs/android/api#run-a-query执行以下代码后,

  public void query(){
        mAWSAppSyncClient.query(ListTodosQuery.builder().build())
                .responseFetcher(AppSyncResponseFetchers.CACHE_AND_NETWORK)
                .enqueue(todosCallback);
    } 

GraphQL回调响应应该类似于:

{
  "data": {
    "listTodos": {
      "items": [
        {
          "id" : ...
        }]}}}

但是我一直收到以下答复:

com.apollographql.apollo.api.Response@df0e853

它没有任何其他数据。为什么会这样呢?为什么响应采用这种格式?

(我尝试在AppSync控制台中运行listTodos查询,并在那里获得正确的响应,其中包含DynamoDB中的数据和所有项目)

1 个答案:

答案 0 :(得分:1)

com.apollographql.apollo.api.Response@df0e853是响应对象的实例。您应该可以访问response.data()

    private GraphQLCall.Callback<ListTodosQuery.Data> todosCallback = new GraphQLCall.Callback<ListTodosQuery.Data>() {
        @Override
        public void onResponse(@Nonnull Response<ListTodosQuery.Data> response) {
            Log.i("Results", response.data().listTodos().items().toString());
            // do something with response.data() here
        }
        // ...
    };
    ```