直接在 on() 回调中使用 off() Firebase?

Use off() directly in on() callback Firebase?

假设我做了一次手术。点赞删除。

var q = ref.child('users').child(targetUserId).child('chat');
q.on('child_added', function(obj) {
  obj.ref().remove();

  //This works right?
  q.off();
}); 

我可以在 on() 回调中直接执行 off() 吗?我不需要指定 eventType 对吗?

没有别的东西要清理了吧?

From the docs:
同样,如果没有指定事件类型或回调,则引用的所有回调都将被删除。

Can I execute off() directly in the on() callback?

是的。

I don't need to specify eventType correct?

正确。正如文档所述,如果 eventType 被省略,引用的所有回调都将被删除。

您也可以像这样链接 .off() 方法,而不是在回调内部调用它:

var q = ref.child('users').child(targetUserId).child('chat');
q.on('child_added', function(obj) {
  obj.ref().remove();
}).off();

作为 in the comments, you can also use the .once() method为了回调只执行一次:

var q = ref.child('users').child(targetUserId).child('chat');
q.once('child_added', function(obj) {
  obj.ref().remove();
});

这种方法的好处是您不必担心无意中删除其他附加事件。