Я пытаюсь выполнить запрос к базе данных Firebase в реальном времени, чтобы отфильтровать данные на основе значения, вложенного на 4-м уровне от root.Ниже приведена структура данных, и мой запрос:
let ordersSnapshot = await admin.database().ref(`orders`).orderByChild(`info/infoStatus`)
.equalTo("In Process")
.once('value');
Но этот запрос не возвращает данных.Я включил индексирование, и для него нет предупреждений.Я также изменил свой запрос на .orderByChild('infoStatus')
, но безрезультатно.
Если я установлю свой реф на один уровень ниже, то есть admin.database().ref('orders/userId1').orderByChild('info/infoStatus').equalTo("In Process")
, тогда он получит результат успешно.Но в моем сценарии у меня нет идентификатора пользователя, который я мог бы использовать в orderByChild
.
Это ограничение запроса к базе данных в реальном времени, т.е. мне нужно обновить структуру данных или есть какая-либо ошибка в моемзапрос?
Узел заказов:
{
"userId1": {
"orderId1": {
"info": {
"infoStatus": "In Process"
}
},
"orderId2": {
"info": {
"infoStatus": "Complete"
}
}
},
"userId2": {
"orderId1": {
"info": {
"infoStatus": "In Process"
}
}
},
"userId3": {
"orderId1": {
"info": {
"infoStatus": "In Process"
}
}
}
}