【问题标题】:Firebase's Realtime database's `child_removed` event not firingFirebase 实时数据库“子删除”事件未触发
【发布时间】:2021-01-28 21:59:14
【问题描述】:
let database = firebase.database(); //the database is empty.

database.ref('user').set({
    color: "red",
    height: 180,
});

database.ref('user/color').remove();

database.ref('user').on('child_added', e => {
    console.log(e.val());
});

database.ref('user').on('child_removed', e => {
    console.log(e.val());
});

我预计'child_removed' 会因为:database.ref('user/color').remove(); 而触发,我预计它会注销'red'

'child_added' 似乎是这样工作的:它会为 user 结束的每个值触发。所以唯一记录到控制台的是180

【问题讨论】:

    标签: javascript firebase firebase-realtime-database


    【解决方案1】:

    问题是您在设置监听器之前调用了.remove()。让您的听众致电.remove()

    let database = firebase.database(); //the database is empty.
    
    database.ref('user').set({
        color: "red",
        height: 180,
    });
    
    // listener first
    database.ref('user').on('child_removed', e => {
        console.log(e.val());
    });
    
    // then calls
    database.ref('user/color').remove();
    

    【讨论】:

    • 为什么 'child_added' 事件会成功触发呢?监听器仅在 set() 被调用之后才设置
    猜你喜欢
    • 1970-01-01
    • 2021-09-27
    • 2019-10-18
    • 1970-01-01
    • 2019-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-04
    相关资源
    最近更新 更多