You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Amplify DataStore.save无法更新后端数据问题求助

问题

更新ShortId记录时,_version和_lastChangedAt字段正常更新,但short_id字段始终保持原值,未同步传入的新值abcdgedefga。

使用Amplify DataStore的代码如下:

await DataStore.save(
  ShortID.copyOf(ShortIDRecord, (updated) => {
    Object.assign(updated, modelFields);
  })
);

同时尝试直接调用API.graphql执行更新,结果一致,响应示例:

{
    "data": {
        "updateShortID": {
            "id": "3a83342f-e4f9-4b6b-a91f-d1003277b561",
            "short_id": "abcdged",
            "createdAt": "2023-09-16T06:44:48.037Z",
            "updatedAt": "2023-09-16T06:44:48.037Z",
            "_version": 2,
            "_lastChangedAt": 1694846699836,
            "_deleted": null
        }
    }
}

排查方向与解决方案

  • 检查数据模型定义:确认short_id字段在GraphQL schema中未添加@readonly指令,只读字段会被后端忽略更新请求,仅触发版本字段变更。
  • 验证modelFields数据有效性:在执行Object.assign前,打印modelFields确认其中包含short_id: "abcdgedefga"的正确键值对,排除数据未正确传入的问题。
  • 清除DataStore本地缓存:若本地缓存存在未同步的旧数据,可能导致读取结果异常。可调用DataStore.clear()清除缓存后重新执行更新操作。
  • 检查后端Resolver逻辑:自定义的更新Resolver若存在逻辑错误,会导致short_id字段未被正确写入。检查AppSync中的Resolver代码,确保更新逻辑正确处理该字段的赋值。

内容的提问来源于stack exchange,提问作者jbl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 02:57:08