放大/反应 AppSync graphql 订阅 @auth 错误

Posted

技术标签:

【中文标题】放大/反应 AppSync graphql 订阅 @auth 错误【英文标题】:Amplify/React AppSync graphql subscriptions @auth error 【发布时间】:2021-07-14 20:21:12 【问题描述】:

你好:slight_smile:

我有一个与@auth 相关的小问题。 (放大 + 反应 + AppSync)

schema.graphql

type Ticket @model
@auth(rules: [
  allow: owner, provider: userPools,
])

  id: ID!
  status: String!
  owner: String!
  description: String!

构建 -> schema.graphql

type Subscription 
  onCreateTicket(owner: String!): Ticket @aws_subscribe(mutations: ["createTicket"])
  onUpdateTicket(owner: String!): Ticket @aws_subscribe(mutations: ["updateTicket"])
  onDeleteTicket(owner: String!): Ticket @aws_subscribe(mutations: ["deleteTicket"])

所有操作(创建更新等)工作正常:

const data: listTickets: items: items, nextToken = await API
                .graphql(graphqlOperation(listTickets, 
                    owner: user.username                    
                )) as GraphQLResult;

除了订阅:

const subClient = API
  .graphql(graphqlOperation(onUpdateTicket, 
                    owner: user.username
)) as Observable<object>;    

subscription = subClient.subscribe(
                next: (data: any) => console.log('subscription data:', data),
                error: error => console.warn('subscription error: ', error)
            );

订阅永远不会触发。 (没有错误,没有警告)

任何帮助将不胜感激!

谢谢

【问题讨论】:

【参考方案1】:

它工作! 我忘了检查“所有者”,不仅在输入*中,而且在下面的字段中。

#aws-amplify-devs 您能否将此信息添加到文档中? :) 可以节省很多时间。

【讨论】:

以上是关于放大/反应 AppSync graphql 订阅 @auth 错误的主要内容,如果未能解决你的问题,请参考以下文章

AppSync/Amplify - 如何定义 GraphQL 订阅

Appsync 的 graphql 订阅不适用于 PHP5

如果我不使用放大,如何从 AppSync GraphQL 架构生成 Typescript 定义?

Appsync 客户端对 GraphQL 突变的 Angular 订阅

AppSync GraphQL 订阅以分组数据

迁移到纯 websocket 后,我​​在 AWS Appsync 上收到 GraphQL 订阅错误