删除 Firebase 数据中对 child_added 的引用

Removing references to child_added in Firebase data

我正在编写一个 Firebase 网络应用程序 (Javascript)。如果我像这样写对 child_added 的引用:

dataRef.child('bids').child(auction).child(lotno).on('child_added', function(data){...}

"auction" 和 "lotno" 是变量,会随着应用程序的运行而改变。我正在编写脚本以在发生这种情况时关闭每个旧引用(使用 OFF),然后我打开一个新引用。我的关闭看起来像这样:

dataRef.child('bids').child(auction).child(lotno).off('child_added');

首先,我这样做是否正确?其次,有没有一种更通用的方法可以关闭 child_added 引用,以避免一个被意外打开的可能性?

意思是,我可以简单地写Javascript来关闭'bids'内的所有child_added吗?想知道这样的事情是否有效:

dataRef.child('bids').off('child_added');

是否有适用于所有儿童的野外案例?这会关闭所有内容,还是必须写出通过子元素的每个特定路径?

由于路径是用两个变量构建的,并且在任何给定时间都只打开一个侦听器,因此我决定通过简单地将两个值分别存储在它们自己的变量中来解决这个问题,例如:

    var storedPath1;
    var storedPath2;

    dataRef.child('bids').child(auction).child(lotno).on('child_added', function(data){
        if (storedPath1!=undefined && storedPath2!=undefined{
            dataRef.child('bids').child(storedPath1).child(storedPath2).off('child_added');
        }
        storedPath1=auction;
        storedPath2=lotno;
    }

如果之前已经建立了监听器,那么在打开新的监听器时会关闭它。