首页 > 解决方案 > AppSync 示例应用程序中未生成片段

问题描述

我正在浏览此处描述的 AppSync 示例应用程序。

我在 GitHub 上找到了一个示例 Android 客户端应用程序,并试图让它与我的数据一起运行,但由于某种原因,没有生成片段。

在此处输入图像描述

events.graphql 似乎是事件片段定义。

fragment Event on Event {
  id
  description
  name
  when
  where
  comments {
    items {
      eventId
      commentId
      content
      createdAt
    }
  }

我已经尝试将它添加到 appsync Web 界面中的架构中,它会保存架构,但实际上并没有添加片段。我今晚才尝试使用 GraphQL,所以我什至不确定将片段定义放在哪里,而 Google 似乎对此一无所知。

标签: androidgraphqlapolloaws-appsync

解决方案


在回答之前需要更多信息,但我正在处理同一个示例项目并且能够让它工作,所以我可能会有所帮助。

您的项目是否正在同步和构建?这是很好的第一步。看起来你的 .graphql 文件是在你的 app-> source -> appsync -> com 文件中自动生成的,但是类没有在 app -> build -> source -> appsync -> com 文件夹中生成。

我在处理这个项目的过程中学到的一点是,在调用amplify add api命令之前,在 AWS 控制台中完全设置好所有解析器和后端非常重要。您是否使用解析器设置了后端?

如果您有但仍然无法正常工作,请尝试在应用程序终端中运行,amplify gql-compile然后运行amplify push以将数据从控制台拉回您的应用程序,然后根据需要重新同步和重建。这应该为您构建您的 Query/Mutation/Subscription 类,以及 Fragment.class,它们是您程序中要在应用程序中运行的 .graphql 查询/等的解析器。

如果这不起作用,请确保您已完成放大 API 中的所有必要步骤,例如amplify add api, amplify update api. 看来您已经这样做了,因为您已经在 app-> 源目录中生成了 .graphql 文件,但如果您还没有,那么这些是第一步。您还可以通过运行amplify status. 您是否已连接到需要连接的控制台 API?

作为最后的手段,您可以从 github 复制 Event.class 文件并将其粘贴到适当的文件/子目录中,以及应该由 ApolloGraphql 插件生成的其余 Query/Mutation/etc .class 文件。


推荐阅读