AppSync客户端查询未返回完整的数据响应

时间:2019-07-11 19:56:30

标签: amazon-dynamodb graphql aws-amplify aws-appsync dynamodb-queries

我在通过AWSAppSyncClient从AppSync API返回结果时遇到问题。我可以在AWS AppSync控制台中运行查询并获得完整的结果,但是当我从客户端运行查询时,我要查找的部分结果返回一个空数组。

我尝试精简查询以减少返回的结果,因为我读过一点,如果您不提供自己的信息,dynamo将对返回的结果运行过滤器。我还阅读了这可能与dynamoDB表中使用的分区键有关,但是AppSync为我预配了该资源并处理了初始配置。我是使用AppSync的新手,所以我什至在空白处开始寻找问题,因为甚至没有错误消息。

我正在运行的查询

export const getUserConversations = `query getUser($id: ID!) {
  getUser(id: $id) {
    id
    conversations {
      items {
        conversation{
          id
          associated{
            items{
              convoLinkUserId
            }
          }
        }
      }
    }
  }
}
`;

在redux操作文件中进行呼叫

export const getUserConvos = (id) => async dispatch => {

  AppSyncClient.query({
    query: gql(getUserConversations),
    variables: {
      id: id
    }
  }).then(res => {
    console.log("RES FROM CONVO QUERY", res)
  })

}

这是我在浏览器中收到的回复 请注意,conversations.items返回一个空数组。

getUser:
conversations:
items: []
__typename: "ModelConvoLinkConnection"
__proto__: Object
id: "HIDDEN_ID"
__typename: "User"
__proto__: Object
__proto__: Object

但是,如果我在AppSync控制台的操场上运行完全相同的查询,我会得到这个...

{
  "data": {
    "getUser": {
      "id": "HIDDEN_ID",
      "conversations": {
        "items": [
          {
            "conversation": {
              "id": "HIDDEN_ID",
              "associated": {
                "items": [
                  {
                    "convoLinkUserId": "HIDDEN_ID"
                  },
                  {
                    "convoLinkUserId": "HIDDEN_ID"
                  }
                ]
              }
            }
          },
          {
            "conversation": {
              "id": "HIDDEN_ID",
              "associated": {
                "items": [
                  {
                    "convoLinkUserId": "HIDDEN_ID"
                  },
                  {
                    "convoLinkUserId": "HIDDEN_ID"
                  }
                ]
              }
            }
          }
        ]
      }
    }
  }
}

* HIDDEN_ID是一个占位符

我知道对象在我的数据库中,但是如果我通过我的react应用程序运行查询,我什么也没有,如果我在AWS的控制台中运行它,我也会得到另一个。我需要能够通过客户端访问这些对话。可能是什么原因造成的?

0 个答案:

没有答案