Итак, я пытаюсь выполнить запрос к данным 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 в своих проектах. Я буду очень благодарен, если вы сможете провести меня через это.
Спасибо за предложения: @DanielW.. Ранее я добавил ошибку в текст. Я сейчас это подчеркнул. Также не могли бы вы предложить, какой тип заголовка я должен поставить на будущее?
Функция getDoc() используется для получения одного документа с помощью DocumentReference . Для получения нескольких документов с помощью запроса используйте getDocs():
const users = await getDocs(q);
Да понял. Но я хочу получить только один документ. Кроме того, я увидел, что использование getDocs устраняет ошибку.
@AshutoshDash вы можете получить один документ, только если знаете его идентификатор документа, а не значение поля. Поэтому, если вы не знаете идентификатор документа, вам нужно будет использовать запрос, как в моем ответе.
Пожалуйста, сформулируйте правильный заголовок вопроса и поместите сообщение об ошибке в текст, а не в виде снимка экрана.