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

React Native集成AWS Amplify注册报错:name.formatted属性必填

解决AWS Amplify注册时name.formatted必填错误

问题原因

你遇到的错误是因为AWS Amplify用户池中的name属性被配置为结构化Name类型(对应schema.org的Name对象,包含formatted、givenName等子字段),而非简单的字符串类型。即便你以为只需要填写name,系统实际会要求提供name.formatted这个结构化子字段。

解决方案

方案1:将name改为字符串类型(推荐)

如果业务仅需简单的用户名字符串,修改用户池属性配置即可:

  • 若用Amplify CLI初始化Auth:

    1. 执行命令 amplify update auth
    2. 选择修改用户池属性的对应选项
    3. 找到name属性,将类型从Name(结构化)改为String
    4. 执行 amplify push 部署配置变更
  • 若直接在AWS控制台操作:

    1. 进入AWS Cognito控制台,打开目标用户池
    2. 切换到「属性」标签页
    3. 在标准/自定义属性中找到name,将类型改为「字符串」
    4. 保存配置

方案2:注册时传递name.formatted字段

如果必须使用结构化Name类型,调整注册代码的参数结构:
原错误代码示例:

Auth.signUp({
  username: 'user@example.com',
  password: 'Password123',
  attributes: {
    email: 'user@example.com',
    name: '张三' // 此处直接传字符串会触发错误
  }
})

修改为:

Auth.signUp({
  username: 'user@example.com',
  password: 'Password123',
  attributes: {
    email: 'user@example.com',
    'name.formatted': '张三' // 传递结构化的formatted子字段
  }
})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 15:22:32