所以我有一个firebase实时数据库,用于保存用户消息。目前,有了它,因此当用户的“收件箱”子代更新时,它会检索该子代的最新数据,例如:
firebase.database().ref('users/'+firebase.auth().currentUser.uid+'/inbox/').on('child_changed', function(snapshot) {
// get the latest data
});
但是使用此方法时,如果用户删除了一条消息,它将再次检索子数据。无论如何,仅当该子对象中的一个子对象被更新时,才只能检索最新数据吗?
所以在我的数据库中,它是这样设置的:
{
"users" : {
"IPenCEXKICROYWzYtyzybzhem9R2" : {
"inbox" : {
"32tcqIRaG2RAgb9dTwmcgKoVPhd2IPenCEXKICROYWzYtyzybzhem9R2" : {
"lastmessagetimestamp" : 1564139876817,
"conversationmessages" : {
"-LhKZ-MUVxbyRcqp-Q_c" : {
"from" : "32tcqIRaG2RAgb9dTwmcgKoVPhd2",
"messagetext" : "this is a test message",
}
},
},
},
},
}
}
我正在保存用户收到的最后一条消息的时间戳。因此,我希望它仅在'lastmessagetimestamp'子值更改时才检索数据。
我想到的最简单的方法是:
firebase.database().ref('users/'+firebase.auth().currentUser.uid+'/inbox/**conversationid**/lastmessagetimestamp/').on('child_changed', function(snapshot) {
// get the latest data
});
但是因为我的“会话ID”是随机生成的,并且不是唯一的,所以无法完成。有没有办法跳过“对话ID”并直接转到“ lastmessagetimestamp”?