Firebase: как запросить по ключу?
У меня есть таблица местоположений, которую я хочу запросить. Ключ "050PNS74ZW8XZ".
Как вы можете видеть, он существует.
однако, когда я распечатываю какие-либо атрибуты, это не работает
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 должна использоваться при запросе из списка.