все, что делает ваш текущий код - это создание запроса к базе данных Firebase Realtime.Он еще не выполнил этот запрос, поэтому нет результатов для показа.В итоге вы печатаете только определение объекта запроса.
Чтобы получить результаты из базы данных, присоедините прослушиватель к запросу с помощью on()
или once()
, как показано в документации для слушателей .
Более вероятный подход:
const rootRef = firebase.database().ref()
const query = rootRef.child('employees').orderByChild('name').startAt('J')
query.once('value', function(snapshot) {
snapshot.forEach(function(employeeSnapshot) {
console.log(employeeSnapshot.key, employeeSnapshot.val());
});
})
Я настоятельно рекомендую поискать простое короткое руководство по Firebase, прежде чем продолжить.Час, потраченный на создание чего-то вроде приложения для чата, вероятно, показал бы вам ошибку вашего подхода в считанные секунды.
Обратите внимание, что вы, похоже, неправильно понимаете, как упорядочение и фильтрация тоже работают.Ваш запрос указывает базе данных упорядочить все дочерние узлы сотрудников по их имени, затем найти первый дочерний узел, начинающийся с J
, и вернуть все дочерние узлы после этого.Это также включает в себя дочерние узлы, которые начинаются с K
, L
, M
и т. Д. Если вы не хотите этого, вы должны указать Firebase прекратить возвращать узлы в некоторый момент:
const query = rootRef.child('employees').orderByChild('name').startAt('J').endAt('J\uF8FF')
Здесь uF8FF
- последний печатаемый символ Юникода, который гарантирует, что вы получите все результаты (но только те), которые начинаются с J
.