prismic graphql查询单用户

prismic graphql querying single user

我正在尝试弄清楚如何通过 id 从 graphql 模式查询单个用户。我正在使用 graphiql 工具,我能够获得所有用户。

{
    allPrismicUsers {
      edges {
        node {
          id
        data {
          name
        }
        }
      }
    }
}

输出:

{
  "data": {
    "allPrismicUsers”: {
      "edges": [
        {
          "node": {
            "id": "Prismic__User__WzKFwywAABmiZk_4",
            "data": {
              "name": “John Doe”
            }
          }
        },
        {
          "node": {
            "id": "Prismic__User__WzKDZywAABmiZkYp",
            "data": {
              "name": “Jane Doe“
            }
          }
        },
        {
          "node": {
            "id": "Prismic__User__WzKGDiwAAJSiZlFL",
            "data": {
              "name": “Cat Doe”
            }
          }
        }
      ]
    }
  }
}

我在架构上也有 prismicUser()

query {
  prismicUser {
    id
    data {
      name
    }
  }
}

输出:

{
  "data": {
    "prismicUser": {
      "id": "Prismic__User__WzKGDiwAAJSiZlFL",
      "data": {
        "name": "Cat Doe"
      }
    }
  }
}

我正在尝试根据特定 ID 查询用户,但不确定我的查询方式是否错误。 我试过了。

query {
  prismicLocation(id: "Prismic__User__WzKDZywAABmiZkYp") {
    data {
      name
    }
  }
}

我收到一个错误

{ "errors": [ { "message": "Argument \"id\" has invalid value \"Prismic__User__WzKDZywAABmiZkYp\".\nExpected \"prismicUserIdQueryString_2\", found not an object.", "users": [ { "line": 25, "column": 23 } ] } ] }

如何根据用户 ID 呼叫特定用户?

根据 Gatsby GraphQL reference,Gatsby 允许您按 GraphQL 中的任何字段过滤结果(使用 eqne 等运算符)

gatsby-source-prismic 插件提供了一个名为 prismicId 的字段(即 W1syKSIAAAzdN1Jg)。

这是一个示例查询:

{
  prismicUser(prismicId:{eq:"WzKDZywAABmiZkYp"}) {
    data {
      name
    }
  }
}

但您也可以通过id查询:

prismicUser(id:{eq:"Prismic__User__WzKDZywAABmiZkYp"})