AWSAppSyncClient无法检测到graphql查询

时间:2019-01-04 09:39:22

标签: android graphql aws-appsync aws-amplify

enter image description here我在Android应用程序中使用AWS AppSync,并通过this链接访问,但是我已经在AppSync中创建了API,希望将其导入到Android应用程序中。我正在使用Amplify链接应用。

2 个答案:

答案 0 :(得分:1)

好。结果发现AppSync中的查询是由不熟悉命名约定的开发人员创建的,他在查询中加上了“ _”(下划线),这些查询由Amplify处理,它仅删除typemutationquery名称中的所有_,而不删除其中的方法。例如,

type Query {
  getDaily_Build(id: ID!): Daily_Build
}
AppSync中的

在Android的queries.graphql中生成以下查询

query GetDailyBuild($id: ID!) {
  getDaily_Build(id: $id) {
    id
    username
    title
  }
}

这给出了错误

  

验证GraphQL查询文档失败。

我按照命名约定更改了架构,并避免使用特殊字符(例如“ _”),并且现在可以正常使用了。

答案 1 :(得分:0)

您是否已在gradle文件中配置了所有必需的插件和库。

apply plugin: 'com.amazonaws.appsync'

implementation 'com.amazonaws:aws-android-sdk-appsync:2.6.+'
implementation 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.2.0'
implementation 'org.eclipse.paho:org.eclipse.paho.android.service:1.1.1'

并且在清单中,您需要具有以下权限。

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

,并且您需要在应用程序标记中提供以下服务。

 <service android:name="org.eclipse.paho.android.service.MqttService" />