Firebase 实时数据库 属性 侦听器

Firebase Realtime Database Property Listener

我有一些这样的数据:leaderboards/board/{board id}/{child properties}

我为看板添加了一个侦听器,如下所示:

const boardRef = firebase.database().ref('leaderboards/board');
boardRef.on('child_added', (snapshot) => {
    // handle data
});

那部分工作正常。然后我想听听板上的特定 属性,看看它是否有变化。我 不想 想听看板上所有子项的变化,因为有几个子项可以非常频繁地更改,我们不想处理那么多数据,除非需要时(某个应用程序状态)。所以,我尝试了这个:

const endedRef = firebase.database().ref('leaderboards/board/123/ended');
endedRef.on('value', (snapshot) => {
    // handle data
});

但是,当我在 Firebase 中更新 'ended' 属性 时,不会调用侦听器。它仅在我第一次添加侦听器时调用(因此它似乎已正确连接),但在 属性 更改时不会调用。解决这个问题的正确方法是什么?

这个 post 是相似的,但由于我已经在 属性 上尝试 'value' 侦听器,所以我的数据似乎无法解决或无法正常工作:

感谢所有帮助!

这与我的代码库中的某些特定内容有关,导致我的侦听器删除在添加后立即被触发。因此,如果您遇到类似问题,请检查您在哪里删除了侦听器!