Firebase извлекает данные из базы данных в реальном времени - PullRequest
0 голосов
/ 13 ноября 2018

в моем ионном приложении я использую Firebase для получения всех зарегистрированных драйверов и их данных. моя схема выглядит так;

ehara
    Driver
        fjk59KJjkfkjflhghk
            driverId: 1
            location
                 0: 9.086333699999999
                 1: 7.459455999999999

мой вопрос такой; как я могу запросить базу данных, чтобы узнать местонахождение драйвера, если я знаю только его driverId?

1 Ответ

0 голосов
/ 13 ноября 2018

Вам нужно будет выполнить запрос, чтобы найти драйверы с указанным идентификатором:

firebase.database().ref('Driver')
  .orderByChid('driverId')
  .equalTo('1')
  .once('value')
  .then(function(snapshot) {
    snapshot.forEach(function(driverSnapshot) {
      console.log(driverSnapshot.val());
    });
  })

Запрос может соответствовать нескольким дочерним узлам, поэтому код должен использовать snapshot.forEach для потенциально нескольких результатов.

Поскольку в вашем случае идентификатор уже уникален, рассмотрите возможность использования этого идентификатора в качестве ключа в узле Driver.

Driver
    id1
        location
             0: 9.086333699999999
             1: 7.459455999999999

В этом случае чтение становится простым поиском (вместо запроса):

firebase.database().ref('Driver')
  .child('id1')
  .once('value')
  .then(function(snapshot) {
    console.log(snapshot.val());
  })

Поскольку в этой структуре может быть только один узел с данным ключом, нам также больше не нужен цикл forEach.

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