首页 > 解决方案 > Lambda 更改数据时未触发 React Amplify GraphQL 订阅

问题描述

我有一个这样配置的模型:

type MyModel @model
    @auth(rules: [
        { allow: owner },
        { allow: private, provider: iam, operations: [read, update] }
    ])
{
    id: ID!
    someValue: Int
    otherValue: Int
}

以及对该模型的订阅:

const listener = API.graphql(graphqlOperation(onUpdateMyModel, {owner: user.username})).subscribe({
            next: (updatedModel) => {
                //do something
            }
        });

我还有一个 lambda,当它被触发时,otherValue它会通过 graphQL 突变更新模型。但是,这不会触发订阅侦听器。

我已经测试过,当用户更新模型时监听器会接听,这工作得很好,所以我知道订阅一般都在工作。

API 配置了 cognito 用户池作为默认身份验证。

我一定在这里遗漏了一些东西,但我不知道是什么。我如何确保我的听众接收到 Lambda 所做的更改?

标签: reactjsgraphqlsubscriptionamplify

解决方案


这不起作用的原因与它是一个更新记录的 lambda 这一事实无关,而是与它用于更新记录的自定义突变有关。

我需要做的就是确保所有字段都由突变返回......这包括自动生成的createdAtupdatedAt.


推荐阅读