Firebase'child_removed'事件侦听器无法正常工作

时间:2017-01-25 15:29:31

标签: javascript firebase firebase-realtime-database

'child_added'工作正常,但'child_removed'不起作用。

数据索引是“.indexOn”:“status”。

  • Firebase数据

    {
        "user uid" : {
            "-Kb8FSBMOvcposJ-iJYL" : {
                "createDate" : 1485140252291,
                "message" : "login",
                "response" : "none",
                "status" : "0",
                "title" : "8. sign-in"
            },
           "-KbL6d1xrfqCBAcP7_Qu" : {
                "createDate" : 1485356045006,
                "message" : "logout",
                "response" : "none",
                "status" : "1",
                "title" : "sign-out"
            }
        }
    }
    
  • Firebase事件监听器

    var notiRef = firebase.database().ref('message/' + user.uid);
    notiRef.orderByChild('status').equalTo('wait').on('child_added', function(snapshot) {
        //do something...
    });
    
    notiRef.orderByChild('status').equalTo('wait').on('child_moved', function(snapshot) {
        // not worked.
    });
    
    firebase.database().ref('notification/' + user.uid + '/uid').on('child_moved', function(snapshot) {
        // not worked.
    });
    notiRef.on('child_moved', function(snapshot) {
        // not worked.
    });
    

上述代码中的所有三个'child_removed'都不起作用。 设置ref目标是一个问题吗?或者设置indexOn是一个问题? (需要设置indexOn)

1 个答案:

答案 0 :(得分:1)

您的意思是 child_moved 事件未被触发?因为这就是你在听的东西。

如果您感兴趣的孩子删除,请尝试收听 child_removed而不是child_moved

例如:

notiRef.on('child_removed', function(snapshot) {
      // probably will work.
});