0

(我是初学者)我正在尝试使用 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 中的数据和所有项目)

4

1 回答 1

2

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
        }
        // ...
    };
    ```
于 2019-10-23T12:47:21.647 回答