我正在使用一次调用在firebase数据库中进行查询。如果记录存在于firebase中,则执行一些代码,但是当记录不存在时,永远不会调用错误处理。怎么了?
dbReference.child('432sfdgS24').once('value', function(snap) {
console.log(snap.val()); // logged if '432sfdgS24' exists
}, function(error) {
console.error(error); // never come here even if '432sfdgS24'does not exist
});
答案 0 :(得分:0)
某个位置缺少数据不是错误。在没有数据的位置请求数据,只会导致不包含数据的快照。
当客户端确定无法读取某个位置的数据时会发生错误,因为服务器上的安全规则会阻止它。
答案 1 :(得分:0)
从firebase数据库中获取数据时,您不会收到错误。如果数据存在,您可以将其作为snap.val()
访问,如果数据不存在则snap.val()
将为空。
所以你可以这样做,
dbReference.child('432sfdgS24').once('value', function(snap) {
var data = snap.val()
if(data != null) {
console.log('Data fetched successfully')
}
else {
console.log('Failed to fetch the data')
}
})