Firebase:数据库引用'on'方法没有运行回调(javascript)

Ves*_*pas 5 javascript firebase firebase-realtime-database

我正在调查可能不存在的数据的查询.在这种情况下,不会运行回调.正如我从文档中理解的那样,它应该运行并且snapshot.val()应该为null,不是吗?

这里有一个简单的例子:http://surfmaps.eu/trombone/case.html

回调中有一个未执行的console.log.

我在这里错过了什么吗?

再见,谢谢,路易斯

码:

function getData(id) {
    var ref=firebase.database().ref("support/"+id); 
    console.log("In getData, looking for ",ref);

    // get support data from firebase
    ref.on('value',function (snapshot) {
        console.log("In Value");
        console.log(snapshot);
    });

    console.log("end getData, looking for ",ref);

}

// on startup
getData("abc");
Run Code Online (Sandbox Code Playgroud)

Fra*_*len 12

您无权读取数据.要查看此内容,您可以附加完成侦听器并记录它为您提供的错误:

var ref=firebase.database().ref("support/"+id); 
console.log("In getData, looking for ",ref);

// get support data from firebase
ref.on('value',function (snapshot) {
    console.log("In Value");
    console.log(snapshot);
}, function(error) {
    console.error(error);
});

console.log("end getData, looking for ",ref);
Run Code Online (Sandbox Code Playgroud)

这样做表明:

错误:/ support/abc中的permission_denied:客户端无权访问所需数据.

  • 当您无权阅读时,侦听器将被取消 - 因此得名。但确实应该有一些关于它的文档。不知道去哪里了。 (2认同)