當我針對特定eventType的引用調用off
時,firebase似乎將刪除所有事件類型的所有回調。在下面的代碼中,我想刪除child_removed
事件的所有回調,同時保留child_added
事件的回調。我做錯了嗎?Firebase關閉刪除所有eventType的所有回調
<script src="https://cdn.firebase.com/js/client/2.3.1/firebase.js"></script>
<script>
var root_ref = new Firebase('https://jcatest.firebaseio.com');
root_ref.on('child_added', function(snap){
console.log('child:', snap.key(), snap.val());
});
root_ref.off('child_removed');
root_ref.child('foo_key').set('foo_val');
</script>
從火力文檔:
「如果沒有指定一個回調,指定的EVENTTYPE所有的回調都將被刪除。」 https://www.firebase.com/docs/web/api/query/off.html
我知道我可以通過回調作爲第二個參數,但我想避免這樣做,如果可能的話。文件似乎表明這是可能的。
我跑了幾個測試,這是稍微有點複雜:當你調用'關閉(「child_removed」)'火力地堡停止射擊' child_ *'事件。如果你有一個'value'事件監聽器,那*會在off('child_removed')後繼續激發。我會問,這是否是預期的行爲。 –
@FrankvanPuffelen任何更新? –
它確實看起來像Firebase SDK中的錯誤。沒有修復的時間表,所以你可能想暫時解決它。 –