我在通过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的控制台中运行它,我也会得到另一个。我需要能够通过客户端访问这些对话。可能是什么原因造成的?