延迟事件监听器直到登录(Firebase:简单登录。)

时间:2014-05-02 14:36:09

标签: javascript jquery javascript-events callback firebase

我正在撰写一个简单的页面,以便更好地了解Firebase简单登录系统。您可以在http://jsfiddle.net/ShrsN/找到指向该链接的链接。

我理解简单登录基础知识,我想我了解Firebase的数据读取回调(.on('child_added')等)。但是,我怀疑我的代码需要一些重做,因为这个跟随侦听器依赖于userRef被赋予其适当的值。虽然userRef在代码的前面已经正确定义 - 一旦用户点击OK登录 - 我相信代码的异步性意味着userRef.on('child_added'){}块试图在userRef之前运行定义得当。

userRef.on('child_added', function(snapshot) {
    if(snapshot.val() === null) {
        alert('User does not exist.');
    } else {
        console.log("Child added" + snapshot);
    }
});

我的控制台给了我这个警告:FIREBASE WARNING: on() or once() for /users/undefined failed: Error: permission_denied: Client doesn't have permission to access the desired data.并且我很确定这是因为userRef.on正在尝试使用pageload,而userRef只在用户登录时定义。(再次,请参阅jsfiddle for究竟是如何运作的。)

那么,在用户登录之前,如何“暂停”或推迟此userRef.on()阻止?我不是100%清楚这个方法是如何工作的:我可以把它放在有条件的吗?如果在另一个函数内部它仍会正确触发吗?

0 个答案:

没有答案