Firebase orderByValue (). EqualTo () не является функцией (Node JS) - PullRequest
1 голос
/ 13 марта 2019

Моя база данных имеет следующую структуру:

"groupA" : {
  "applications" : {
    "applicationID_132" : {
      "status" : "accepted"
    },
    "applicationID_423" : {
      "status" : "declined"
    },
    "applicationID_562" : {
      "status" : "accepted"
    }
  }
}

Я пытаюсь получить снимок приложений со статусом «принято» (чтобы можно было пропустить выборку всех приложений) по:

return admin.database().ref('groupA').child('applications').orderByValue('status').equalTo('accepted')
                  .once('value')
                  .then(acceptedApplicationsSnapshot => {

Кажется, не работает, пробовал также orderBy и orderByValue.Что может отсутствовать или как лучше справиться с этим делом?Спасибо за любую помощь!

1 Ответ

1 голос
/ 13 марта 2019

Попробуйте использовать child.orderByChild().value()

В вашем случае:

return admin.database().ref('groupA').child('applications').orderByChild('status').equalTo('accepted')
                  .once('value')
                  .then(acceptedApplicationsSnapshot => {

Вы также можете использовать orderByValue() , но сначала вам нужно получить ссылку, которую вы хотите заказать - функция не принимает параметр.

Как использовать orderByValue ()?

.child(..) возвращает ссылку в вашем случае, которая равна applications, если вы хотите использовать orderByValue, чем вам нужно было бы получить ссылку на 'status' перед этим, например:

admin.database().ref('groupA').child('applications').child('status').orderByValue() и тогда вы примените один из методов фильтрации данных например. .equalTo('accepted')...

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