Ошибка TS: тип «Query<DocumentData>» не может быть назначен параметру типа «DocumentReference<DocumentData>»

Итак, я пытаюсь выполнить запрос к данным Firestore. Мой код:

import { collection, getDoc, query, where } from "firebase/firestore";
import { db } from "../../utils/firebaseConfig";

  const getQuery = async () => {
    const userDataRef = collection(db, "userData");
    const q = await query(
      userDataRef ,
      where("mailID", "= = ", "dashashutosh1999@gmail.com")
    );

    const users = await getDoc(q) //error

  };

  console.info(getQuery());

В строке const users = await getDoc(q) я получаю эту ошибку:

//описание ошибки- Argument of type 'Query<DocumentData>' is not assignable to parameter of type 'DocumentReference<DocumentData>'.

Я попытался найти ошибку, но получил только другой вариант и не смог найти полезных ответов, чтобы помочь себе.

Я новичок в TS и учусь, используя TS в своих проектах. Я буду очень благодарен, если вы сможете провести меня через это.

Пожалуйста, сформулируйте правильный заголовок вопроса и поместите сообщение об ошибке в текст, а не в виде снимка экрана.

Daniel W. 18.11.2022 18:41

Спасибо за предложения: @DanielW.. Ранее я добавил ошибку в текст. Я сейчас это подчеркнул. Также не могли бы вы предложить, какой тип заголовка я должен поставить на будущее?

Ashutosh Dash 19.11.2022 07:41
Подъем в javascript
Подъем в javascript
Hoisting - это поведение в JavaScript, при котором переменные и объявления функций автоматически "перемещаются" в верхнюю часть соответствующих...
Хук useOnClickOutside в ReactJS
Хук useOnClickOutside в ReactJS
Как разработчик ReactJS, вы, возможно, сталкивались с ситуацией, когда вам нужно закрыть модальное или выпадающее меню, когда кто-то щелкает за его...
Хуки (часть-2) - useEffect
Хуки (часть-2) - useEffect
Хук useEffect - один из самых мощных и универсальных инструментов в арсенале разработчика React. Он позволяет вам управлять побочными эффектами в...
[LXI-SpartaCodingClub Full-Stack Bootcamp in Indonesia] 2023/1/21 TIL/Week 15]
[LXI-SpartaCodingClub Full-Stack Bootcamp in Indonesia] 2023/1/21 TIL/Week 15]
Я научился создавать карусель в ReactJS с помощью библиотеки Splide.
Краткое введение в Styled-компоненты
Краткое введение в Styled-компоненты
В настоящее время популярность Styled-компонентов становится все больше и больше. Большинство проектов, построенных на React.js, используют эту...
ДЕНЬ 8 | Страница обзора в React
ДЕНЬ 8 | Страница обзора в React
На этом сегодня все, завтра снова увидимся с новым проектом!
0
2
69
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Функция getDoc() используется для получения одного документа с помощью DocumentReference . Для получения нескольких документов с помощью запроса используйте getDocs():

const users = await getDocs(q);

Да понял. Но я хочу получить только один документ. Кроме того, я увидел, что использование getDocs устраняет ошибку.

Ashutosh Dash 19.11.2022 11:10

@AshutoshDash вы можете получить один документ, только если знаете его идентификатор документа, а не значение поля. Поэтому, если вы не знаете идентификатор документа, вам нужно будет использовать запрос, как в моем ответе.

Dharmaraj 19.11.2022 13:17

Другие вопросы по теме