Firebase: как запросить по ключу?

У меня есть таблица местоположений, которую я хочу запросить. Ключ "050PNS74ZW8XZ".

enter image description here

Как вы можете видеть, он существует.

однако, когда я распечатываю какие-либо атрибуты, это не работает

function testing(req, resp) {
  const location = database.ref('locations').equalTo('050PNS74ZW8XZ');
  console.log('location:', location.account_capabilities); // <--- prints undefined
  resp.json("asfdsf");
}

что я делаю не так???

3 ответов


если вы знаете ключ, вы можете использовать child метод.

однако более фундаментальная проблема заключается в том, что значение не доступно непосредственно из ref. Вы можете получить значение, используя once метод-для прослушивания value событие-которое возвращает обещание, которое разрешает снимок:

function testing(req, resp, next) {
  database.ref('locations').child('050PNS74ZW8XZ')
    .once('value')
    .then(function(snapshot) {
      var value = snapshot.val();
      console.log('location:', value.account_capabilities);
      resp.json(value.account_capabilities);
    })
    .catch(next);
}

больше информации в документация.


Если вы знаете ключ, вы можете получить доступ к ребенку напрямую, а затем превратить его в объект с $firebaseObject.

var locref = database.ref('locations').child('050PNS74ZW8XZ');
const location = $firebaseObject(locref);

функция equalTo должна использоваться при запросе из списка.


как о

const location = database.ref('locations/050PNS74ZW8XZ');