【问题标题】:AWS Amplify GraphQL Unknown Directive in Android StudioAndroid Studio 中的 AWS Amplify GraphQL 未知指令
【发布时间】:2020-08-14 19:35:27
【问题描述】:

我一直在尝试使用 AWS Amplify 生成 GraphQL API 和后端。我可以使用引导模式创建来创建工作后端。我选择了 Todo 示例。我可以从 Android Studio 中内置的应用程序调用它。查询和突变工作正常。每当我使用 Android Studio 查看 amplify/backend/api/project/ 中的 schema.graphql(其中 project 是项目的名称)时,我都会收到有关尝试重新定义 Todo 和使用未声明的指令 @model 的错误。我确定我遗漏了一些明显的东西。因此,我们将不胜感激。

Android Studio 3.6.3 / Gradle 5.6.4 / Gradle Plugin 3.6.3 / JS Graph QL 2.4.0 / Java Language / Amplify CLI 4.18.1 / npm 6.14.4 / node 12.16.2

尝试以这种方式使用这个 graphql 插件是不是我错了?

重现:

在 Android Studio 中创建一个带有空 Activity 的项目。 从项目根运行:

amplify init 

接受默认值。 运行:

amplify add api

选择 GraphQL、引导模式并选择 Todo 示例。否则采用默认值。 运行:

amplify push

amplify/backend/api/project 中的graphql.schema 将包含待办事项架构

type Todo @model {
...
}

其中 ... 是默认字段。

这会产生错误

试图使用未声明的指令“模型”

并且还会产生3个错误实例

试图重新定义现有的“Todo”类型

我可以看到 amplify 已将相同的 json 架构放入#current-cloud-backend 和项目构建目录中。

我接受了默认的 .graphqlconfig.yml 文件。

快速更新:

我确实发现我可以通过执行以下操作来消除错误,但似乎是不必要的黑客攻击。不过,如果这是正确的就足够公平了。

  1. 我编辑了 .yml 以排除架构的 #current-cloud-backend 副本并排除架构的构建版本。

  2. 我从directives 上的 Amplify 网页手动将指令 SDL 粘贴到 graphql 文件中,并将其包含在 yml 中。

这消除了关于@model 的错误。

我还按照this article 中的建议处理了有关@aws_subscribe 未定义的错误。

但我仍然在 amplify/backend/api/project 中生成的 schema.graphql 中遇到多个 re 声明错误

【问题讨论】:

  • 您找到解决方案了吗?尽管遵循了教程,但我遇到了完全相同的问题,并且不确定为什么它不应该开箱即用
  • 请添加“快速更新”作为答案并将其从问题正文中删除。

标签: android-studio graphql aws-amplify aws-amplify-cli aws-amplify-sdk-android


【解决方案1】:

我遇到了类似的错误。我使用了博客/帖子模式模板并对其进行了自定义。运行放大推送并重新输入“@model”后,错误消失了。

【讨论】:

    猜你喜欢
    • 2021-05-31
    • 2021-02-07
    • 2019-03-19
    • 2019-07-24
    • 2020-02-09
    • 2020-07-01
    • 2022-01-02
    • 2019-09-07
    • 2020-04-08
    相关资源
    最近更新 更多