0

これは、取得しようとしているドキュメントの例です。

  {
  "ref": Ref(Collection("Word"), "270608756095582738"),
  "ts": 1594331477980000,
  "data": {
    "word": "ablatitious",
    "letters": [
      {
        "letter": "a",
        "occurrence": 2
      },
      {
        "letter": "b",
        "occurrence": 1
      },
      {
        "letter": "l",
        "occurrence": 1
      },
      {
        "letter": "t",
        "occurrence": 2
      },
      {
        "letter": "i",
        "occurrence": 2
      },
      {
        "letter": "o",
        "occurrence": 1
      },
      {
        "letter": "u",
        "occurrence": 1
      },
      {
        "letter": "s",
        "occurrence": 1
      }
    ],
    "length": 11
  }
}

これが私のスキーマです

 type Letter @embedded {
  letter: String! @unique
  occurrence: Int!
}

type Word {
  word: String! @unique
  letters: [Letter]!
  length: Int!
}

input LetterInput {
  letter: String!
  occurrence: Int!
} 

type Query {
  Word(length: Int!): Word
  WordByLetters(letters: [LetterInput!]): Word
}

これは、このスキーマでスキーマを更新しようとすると発生するエラーです。

Schema does not pass validation. Violations:

Type mismatch: field 'letters' defined at object 'Word' has type 'Letter'. (line 19, column 17):
  WordByLetters(letters: LetterInput): Word
                ^

LetterInputタイプをクエリタイプに切り替えると、Letterこのエラーが発生しますWordByLetters

Type 'Letter' is not an input type type. (line 19, column 26):
  WordByLetters(letters: Letter): Word
                         ^

したがって、明らかに、入力型を使用する必要がありますが、これは理にかなっています。意味をなさないのは、2 つのエラーのうち最初のエラーです。誰かが理由を説明してもらえますか?

4

1 に答える 1