0

アプリに次のコードがあります

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

コードですべきことは、obsRef を firebase から削除してから、「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 に答える