一旦调用javascript,firebase中的错误处理

时间:2018-03-09 04:55:39

标签: javascript node.js firebase firebase-realtime-database google-cloud-functions

我正在使用一次调用在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
});

2 个答案:

答案 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')
    }
})