android-studio - Android Studio 中的 AWS Amplify GraphQL 未知指令
问题描述
我一直在尝试使用 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 个错误实例
试图重新定义现有的“待办事项”类型
我可以看到 amplify 已将相同的 json 模式放入 #current-cloud-backend 和项目构建目录中。
我接受了默认的 .graphqlconfig.yml 文件。
快速更新:
我确实发现我可以通过执行以下操作来消除错误,但似乎是不必要的黑客攻击。虽然如果那是正确的就足够公平了。
我编辑了 .yml 以排除架构的 #current-cloud-backend 副本并排除架构的构建版本。
我从 Amplify 网页上的指令手动将指令 SDL 粘贴到 graphql 文件中,并将其包含在 yml 中。
这消除了关于@model 的错误。
我还按照本文中的建议处理了有关 @aws_subscribe 未定义的错误。
但是我仍然在 amplify/backend/api/project 中生成的 schema.graphql 中遇到多个重新声明错误
解决方案
我遇到了类似的错误。我使用了博客/帖子模式模板并对其进行了自定义。运行放大推送并重新输入“@model”后,错误消失了。
推荐阅读
- informatica - 如何使用 informatica cloud 将数据从 REST API 提取到 csv 文件
- gatsby - 将 CSS 类传递到 sanity block-content root
- c# - UWP。如何将数据传递到我的数据库然后填充网格?
- ios - 在 Flutter 上为 ios 深度链接的 XCode 设置而苦苦挣扎
- batch-file - 执行 .bat 文件并将它们移动到不同文件夹的脚本
- c# - 从 UserControl 属性绑定到其视图模型不起作用
- c# - 第二个通用参数的推断
- c# - 无法调试客户端 blazor
- matlab - 复制图(1)并将副本分配给图(2)
- python - 从函数返回,然后返回同一个地方(Python)