我有一个我想查询的位置表。关键是“050PNS74ZW8XZ”。
如您所见,它存在。
但是,当我打印出任何属性时,它不起作用
function testing(req, resp) {
const location = database.ref('locations').equalTo('050PNS74ZW8XZ');
console.log('location:', location.account_capabilities); // <--- prints undefined
resp.json("asfdsf");
}
我做错了什么???
答案 0 :(得分:9)
如果您知道密钥,则可以使用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);
}
documentation中有更多信息。
答案 1 :(得分:2)
如果您知道可以直接访问子项的密钥,则将其转换为带有$ firebaseObject的对象。
var locref = database.ref('locations').child('050PNS74ZW8XZ');
const location = $firebaseObject(locref);
从列表中查询时应使用equalTo函数。
答案 2 :(得分:0)
怎么样
const location = database.ref('locations/050PNS74ZW8XZ');