Простой запрос к базе данных Firebase, возвращающий очень большой ответ - PullRequest
0 голосов
/ 12 июня 2019

Я пытаюсь выполнить очень простой запрос, следуя инструкциям на https://firebase.google.com/docs/firestore/query-data/queries, выполнив что-то вроде этого:

const requestQueueRef = db.collection('brocasters').doc('Kala').collection('requestQueue')
var querye = requestQueueRef.where("id", "==","0wEMRQYh3D5ODHJN6kThyO")

То, что я пытаюсь сделать, - это предотвратить повторное хранение идентификаторов в requestQueue, поэтому я проверяю идентификатор перед вставкой нового документа (я жестко закодировал идентификатор для этого примера).

Когда я проверяю переменную querye, у меня очень большой ответ (5821 строка JSON). Но что заставляет меня думать, что я делаю что-то не так, так это то, что если я заменю часть .where("id", "==","0wEMRQYh3D5ODHJN6kThyO") на какую-то тарабарщину вроде .where("iddddd", "==","aaaaaa0wEMRQYh3D5ODHJN6kThyO"), я все равно получу очень большой ответ.

Ответы [ 2 ]

2 голосов
/ 12 июня 2019

Код, который вы показываете, еще не выполнил запрос.Вероятно, вы делаете дамп в формате JSON созданного вами объекта Query.Если вы действительно хотите выполнить запрос, вы должны сделать что-то вроде вызова get() для созданного вами объекта запроса, а затем проверить результаты, предоставленные в QuerySnapshot.

См. Документацию взапросы, чтобы получить более подробную информацию о запросах Firestore.

1 голос
/ 12 июня 2019

вам не хватает некоторой части кода, это должно сработать:

const requestQueueRef = db.collection('brocasters').doc('Kala').collection('requestQueue')
var querye = requestQueueRef
    .where("id", "==","0wEMRQYh3D5ODHJN6kThyO")
    .get()
    .then((snap) => {
     snap.docs.forEach(doc => {
       if(doc.exists) console.log(doc.data())
     })
    })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...