Firebase不会调用OnChildChanged事件

时间:2017-09-03 21:35:56

标签: java android firebase firebase-realtime-database

给出以下DB方案: enter image description here

我希望收听任何mHotZoneRecord更改。要做的,我做了如下:

mDBRefUsers = mDatabase.getReference("/users/");
mDBRefUsers.child("mHotZoneRecord").addChildEventListener(new HotZoneNotification(this));

以及代码中的其他地方,实现了HowZoneNotification

class HotZoneNotification extends TableSyncInfo
        implements ChildEventListener {
      OnChildChanged();
      OnChildAdded();
}

问题是我没有得到任何OnChildChanged事件。

我做错了什么?

1 个答案:

答案 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"在用户分支中 喜欢这张照片enter image description here

所以我所做的就是我进入了用户'然后我得到了所有钥匙" Kt8YIIAEH6EKXIbh3YN - Kt8A ......"然后我设置听众" mHotZoneRecord"包含在钥匙中的孩子。