我的Firebase addChildEventListener存在问题。这是我的代码
final FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference reference = database.getReference().child("data");
reference.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
Log.v("NOTIFICATION", "==" + dataSnapshot.getKey());
Log.v("NOTIFICATION1", "==" + dataSnapshot.child("switch").getValue());
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {}
@Override
public void onCancelled(DatabaseError databaseError) {}
});
return true;
}
});
参考"数据"数据有15个孩子。当我更改第一个孩子中的数据时,我得到第一个孩子的关键名称 NOTIFICATION 15次, NOFTICATION1 作为更改的开关数据也是15次。为什么我会这样?这是默认行为 addChildEventListener 。有没有替代方法?每当我更改15个孩子中的任何一个时,我都需要获取datachange。