0

我的应用程序中有以下代码

this.obsRef.remove(function(error) {
      self.firebaseRef.child('users/'+self.user.name+'/invite')
               .remove(function(error) {
                    self.enterLobby();
                });
            });

代码应该做的是从firebase中删除obsRef,然后删除'users/$user/invite'上的位置。删除所有内容后,将调用 enterLobby。

现在问题出在 enterLobby() 上,我得到了以下代码:

this.userListRef.child(this.user.name).child('invite')
             .on('child_added', function(snapshot) {
           console.log("INVITE");
        });

并且 enterLobby() 里面的代码每次都会执行。我遗漏了一些东西,或者 .remove() 的回调没有按预期工作?谢谢

4

1 回答 1

1

处理程序将.on('child_added')确保每次添加孩子时都会调用提供的回调。这就是您看到代码执行多次的原因。您可能想.once('value')改用:

this.userListRef.child(this.user.name).child('invite').
  once('value', function(snapshot) { console.log("INVITE"); });
于 2013-04-23T16:53:48.587 回答