我的schema.graphql
文件中定义了几个模型。其中之一是:
type QuizCategory @model {
id: ID!
QuizCategoryName: String!
QuizCategoryDescription: String!
QuizCategoryThumbnailUrl: String!
QuizCategoryReferenceCode: Int!
}
当我运行amplify push
时,schema.grahql
构建文件夹中的更新为:
type QuizCategory {
id: ID!
QuizCategoryName: String!
QuizCategoryDescription: String!
QuizCategoryThumbnailUrl: String!
QuizCategoryReferenceCode: Int!
_version: Int!
_deleted: Boolean
_lastChangedAt: AWSTimestamp!
createdAt: AWSDateTime!
updatedAt: AWSDateTime!
}
并且在 appsync 控制台的模式选项卡中制作了该文件的精确副本,以及其他自动生成的内容。
现在,在此数据源指向的数据库中,我添加了列和值,但是当我运行应用程序时,我收到以下错误消息:
E/amplify:aws-datastore(8287):GraphQLResponseException{message=QuizCategory 的订阅错误:[GraphQLResponse.Error{message='FieldUndefined 类型的验证错误:'QuizCategory' 类型中的字段'_deleted' 未定义@'onUpdateQuizCategory/_deleted '',locations='null',path='null',extensions='null'},GraphQLResponse.Error{message='FieldUndefined 类型的验证错误:'QuizCategory' 类型中的字段 '_lastChangedAt' 未定义 @'onUpdateQuizCategory/ _lastChangedAt'',locations='null',path='null',extensions='null'},GraphQLResponse.Error{message='FieldUndefined 类型的验证错误:'QuizCategory' 类型中的字段 '_version' 未定义 @'onUpdateQuizCategory /_版本'',位置='null', path='null', extensions='null'}], errors=[GraphQLResponse.Error{message='FieldUndefined 类型的验证错误:'QuizCategory' 类型中的字段'_deleted' 未定义@'onUpdateQuizCategory/_deleted' ',locations='null',path='null',extensions='null'},GraphQLResponse.Error{message='FieldUndefined 类型的验证错误:'QuizCategory' 类型中的字段 '_lastChangedAt' 未定义 @'onUpdateQuizCategory/_lastChangedAt '',locations='null',path='null',extensions='null'},GraphQLResponse.Error{message='FieldUndefined 类型的验证错误:'QuizCategory' 类型中的字段 '_version' 未定义 @'onUpdateQuizCategory/ _version'',位置='null',路径='null',extensions='null'}], recoverySuggestion=查看附加的 GraphQLResponse.Error 对象列表。}
我尝试将字段添加(_version, _deleted, _lastChangedAt, createdAt, updatedAt)
到表中,但这无济于事。
在AppSync 指南中,有这一行:
要在客户端应用程序中使用此元数据,请在您的 GraphQL 类型和突变选择集中包含 _version、_lastChangedAt 和 _deleted 字段。
这不是很清楚,而且 Flutter 的文档仍在开发中,很难找到原因。
我还浏览了以下“相关”github问题页面:
DataStore 应自动填充 createdAt 和 updatedAt #6758 AWS Amplify GraphQL 订阅失败,并显示“不能为不可为空的类型返回 null:父级中的 'AWSDateTime' ... 对于 createdAt/updatedAt”#5542
最重要的是:
阻止 AppSync 全局/在线同步本地数据存储更改的几个错误 #822
当我在 appsync 控制台上测试查询时,一切正常。
如果有人需要任何澄清,我会更新这个问题。