微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

放大 - 获取单个模型的当前用户数据 (GraphQL) - 显示配置文件场景

如何解决放大 - 获取单个模型的当前用户数据 (GraphQL) - 显示配置文件场景

此问题特定于 AWS Amplify 和 GraphQL,与认知用户和架构生成相关。

我无法将登录的 Cognito 用户组关联到单个 GraphQL 模型 (@model)。

我有以下场景:“显示关联的个人资料”,我在其中查询用户个人资料并显示一些其他数据(在这种情况下是最喜欢的食物)

在这个例子中,假设我有以下内容

type Profile @model @auth(rules: [{ allow: owner,operations: [create,delete,update]) {
  id: ID!
  favoriteFood: String
}

这将生成以下内容

## generated query
query GetProfile($id: ID!) {
  getProfile(id: $id) {
    id
    favoriteFood    
    createdAt
    updatedAt
    owner
  }
}

## generated list profiles
query ListProfiles(
  $filter: ModelProfileFilterInput
  $limit: Int
  $nextToken: String
) {
  listProfiles(filter: $filter,limit: $limit,nextToken: $nextToken) {
    items {
      id
      favoriteFood
      createdAt
      updatedAt
      owner
    }
    nextToken
  }
}

## generated mutation
mutation CreateProfile(
  $input: CreateProfileInput!
  $condition: ModelProfileConditionInput
) {
  createProfile(input: $input,condition: $condition) {
    id
    favoriteFood
    createdAt
    updatedAt
    owner
  }
}

我遇到了一些问题

  1. 如何根据登录身份获取单个个人资料

在这种情况下,我认为按 owner 字段(登录 username查询会很好,但是查看查询 GetProfile,它按 查询个人资料 ID,而不是 username/owner

因此,我可以显示“我的个人资料”的唯一方法,我必须查询ListProfiles,然后在事后通过登录username过滤掉,匹配到{{1} } 场地。似乎这不是正确的方法...

  1. 如何获取它以便我可以通过 owner 中的 username 进行查询? (这是在 Get 字段中填充的内容
  • 我的想法是将 owner 字段添加username,然后使用自定义解析器根据 Profile 自动填充此 username 字段。立>

理想的情况是这样的:

owner

再说一次,这似乎只是为登录用户获取单个模型。

我希望这很清楚,但很高兴在必要时提供更多意见。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。