我希望收听任何mHotZoneRecord更改。要做的,我做了如下:
mDBRefUsers = mDatabase.getReference("/users/");
mDBRefUsers.child("mHotZoneRecord").addChildEventListener(new HotZoneNotification(this));
以及代码中的其他地方,实现了HowZoneNotification
类
class HotZoneNotification extends TableSyncInfo
implements ChildEventListener {
OnChildChanged();
OnChildAdded();
}
问题是我没有得到任何OnChildChanged事件。
我做错了什么?
答案 0 :(得分:0)
你设置了不在mHotZoneRecord上的用户的监听器...设置你必须访问的监听器' -Kt8Y ......'所以做你想做的就必须做这些改变。
mDBRefUsers = mDatabase.getReference("/users/");
mDBRefUsers.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
// dataSnapshot .. hold list of users keys .. now you can hold it to set your listener
for(DataSnapshot dataSnapShot1 : dataSnapshot.getChildren()){
mDBRefUsers.child(dataSnapShot1.getValue(String.class))
.child("mHotZoneRecord")
.addChildEventListener(new HotZoneNotification(this));
// this equals users.child("-Kt8YIIAEH6EKXIbh3YN").child("mHotZoneRecord").[YOU LINSTER]
}
}
你所做的错误是你告诉数据库有一个名为" mHotZoneRecord"在用户分支中 喜欢这张照片
所以我所做的就是我进入了用户'然后我得到了所有钥匙" Kt8YIIAEH6EKXIbh3YN - Kt8A ......"然后我设置听众" mHotZoneRecord"包含在钥匙中的孩子。