Java Firebase实时数据库跟踪更改
我试图在活动的onStart方法中跟踪数据库中的所有更改,但以下代码仅在firebase树的第一行更改时起作用:Java Firebase实时数据库跟踪更改,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,我试图在活动的onStart方法中跟踪数据库中的所有更改,但以下代码仅在firebase树的第一行更改时起作用: mDatabase = FirebaseDatabase.getInstance().getReference(); mDatabase.addValueEventListener(new ValueEventListener() { @Override public void onDataChange(DataSnapshot snapshot) {
mDatabase = FirebaseDatabase.getInstance().getReference();
mDatabase.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
for (DataSnapshot child : snapshot.getChildren()) {
System.out.println(child.getKey() + " : " + child.getValue());
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
我试图通过为每个孩子创建一个侦听器来分别跟踪每个孩子,但它也只对第一个孩子有效。我如何跟踪所有更新?多谢各位
更新。树中有jsut 3个孩子:
我需要能够看到它们中的任何一个何时被更新。嘿,你试过使用添加了child\u的事件监听器吗 儿童活动
子事件被触发,以响应通过push()方法添加的新子节点或通过updateChildren()方法更新的子节点等操作对节点的子节点执行的特定操作。以上每一项都有助于监听对数据库中特定节点的更改。尝试使用addChildEventListener:
getDatabase().getReference().addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
})
如果你发布Firebase结构(你想要听的特定部分)+你是如何创建mDatabase的,那将很有帮助。还要检查@user2819864,我刚刚编写了mDatabase=FirebaseDatabase.getInstance().getReference();。我编辑了这个问题。非常感谢。