Как я могу заставить этот запрос работать? (Магазин огня) - PullRequest
0 голосов
/ 12 июля 2020

Я пытаюсь получить идентификатор документа результата запроса в моей функции onUpdate. Вот что у меня:

console.log(change.after.id)
const queryRef = await db.collection('groups').where('groupDetails', '==', [change.after.id]).get()
console.log(queryRef.id)

В моем журнале я получаю undefined: enter image description here

but when I look in firebase and filter the query it's the same as to what I have: enter image description here введите описание изображения здесь

это, наверное, что-то простое, но я не могу найти ответ, и это сводит меня с ума! Благодарю за помощь!

1 Ответ

1 голос
/ 12 июля 2020

Когда вы запускаете запрос к коллекции с помощью get () , вы собираетесь получить QuerySnapshot , который содержит ноль или более документов, соответствующих вашему запросу. Важно понимать, что даже если вы ожидаете только один документ, Firestore этого не знает и требует, чтобы вы проверяли размер набора результатов внутри QuerySnapshot. Прямо сейчас ваш код предполагает, что есть один документ, и это не сработает.

Используя API QuerySnapshot, ваш код должен выглядеть примерно так:

const querySnapshot = await db
    .collection('groups')
    .where('groupDetails', '==', [change.after.id])
    .get()
if (querySnapshot.docs.length > 0) {
    console.log(querySnapshot.docs[0].id)
}
else {
    console.log("No documents")
}

Будет напечатан идентификатор первого документа в наборе результатов, если были результаты, соответствующие запросу.

...