'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)
答案 0 :(得分:1)
您的意思是 child_moved 事件未被触发?因为这就是你在听的东西。
如果您感兴趣的孩子删除,请尝试收听 child_removed而不是child_moved 。
例如:
notiRef.on('child_removed', function(snapshot) {
// probably will work.
});