Как получить ответ коллекции Firestore в массиве? - PullRequest
0 голосов
/ 29 февраля 2020

Можно ли как-нибудь получить ответ в формате Array при запросе в облачном пожарном хранилище? Я знаю два пути, но я хочу знать, есть ли какой-либо другой путь, который напрямую связан с этим

const queryRef = await db.collection('xyz').where('time','==',29).get()
const array = []
queryRef.forEach(doc => {
    array.push(doc.data())
})

, есть и другой способ, подобный этому.

 const array2 = queryRef.docs.map(doc => doc.data());

Есть ли любой способ получить тот же ответ без использования внешних javascript методов и, если возможно, как я могу посчитать количество ответов, удовлетворяющих запросам, например

const queryRef = await db.collection('xyz').where('time','==',29).get()

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

1 Ответ

2 голосов
/ 29 февраля 2020

Ни один из кодов, которые вы показываете, не использует "внешний метод javascript". И foreach l oop и map(), которые вы показываете, очень стандартны JavaScript и оба одинаково действительны. Фактически, это два наиболее распространенных способа использования результатов запросов Firestore. Мне непонятно, почему вам нужно что-то другое.

У вас есть второй вопрос о подсчете результатов запроса с использованием await:

const queryRef = await db.collection('xyz').where('time','==',29).get()

Этот код вводит в заблуждение, потому что результат из этого запроса не является ссылкой. Это QuerySnapshot . Но если вам нужно количество результатов для этого объекта, просто обратитесь к результирующему массиву документов:

const count = queryRef.docs.length

Firestore не предлагает способ подсчета документов без выполнения запроса. Здесь нет агрегатных функций, как в SQL. Если вам нужно количество документов без запроса, вам придется самостоятельно вести подсчет документов при добавлении и удалении документов в коллекцию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...