我有这样的数据结构:
friend_requests_sent:
userId1:
sub_userId1:
status: "request_sent"
sub_userId2:
status: "request_sent"
sub_userId3:
status: "request_failed"
userId2:
sub_userId1:
status: "request_sent"
sub_userId2:
status: "request_failed"
sub_userId3:
status: "request_sent"
每个sub_userId
都是在某个时间点创建的,但我想设置一个数据库侦听器,只有当status
的值设置为request_sent
时才会触发该数据库侦听器sub_userId
。
也就是说,我正在尝试在不存在的(尚)路径/friend_requests_sent/userId1/sub_userId4/status
上创建一个观察者,该路径将检查它是否确实request_sent
,在创建它时和之后status
值会发生变化。
如何获取前者的快照?感觉就像我在火力架查询系统中迷路了。
提前致谢!
答案 0 :(得分:0)
friend_requests_sent:
userId1:
requests:
sub_userId1: "insertstatushere"
sub_userId2: "insertstatushere"
//continue
我认为这会好很多。添加仅为该路径添加,删除和更改的子项(userIDHere / requests /)。这样你就可以检查和处理所有事情。
答案 1 :(得分:0)
以下是我建议的代码:
firebase.database().ref("friend_requests_sent").once('value', function(snap){
snap.forEach(function(child){
//For each userID below query looks for subusers whose status are 'request_sent'
child.ref.orderByChild('status').equalTo('request_sent').on('child_added', function(grandChild){
//grandChild.val() is the sub-user of child.val()
//grandChild.val().status is equal to 'request_sent'
alert(grandChild.val().status);
});
});
)};
希望有效!