Firebase 实时数据库跟踪更改
Firebase realtime database tracking changes
我试图在 activity 的 onStart 方法中跟踪数据库中的所有更改,但以下代码仅在 firebase 树的第一个 "row" 更改时有效:
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) {
}
});
我试图通过为每个 child 创建一个侦听器来分别跟踪每个 child,但它也只对第一个 child 有效。我如何跟踪所有这些更新?谢谢。
更新。树中有 jsut 3 childs:
我需要能够看到它们何时更新。
嘿,你试过使用 child_added 事件侦听器吗?
儿童活动
子事件被触发以响应发生在节点的子节点上的特定操作,这些操作来自一个操作,例如通过 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) {
}
})
我试图在 activity 的 onStart 方法中跟踪数据库中的所有更改,但以下代码仅在 firebase 树的第一个 "row" 更改时有效:
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) {
}
});
我试图通过为每个 child 创建一个侦听器来分别跟踪每个 child,但它也只对第一个 child 有效。我如何跟踪所有这些更新?谢谢。
更新。树中有 jsut 3 childs:
我需要能够看到它们何时更新。
嘿,你试过使用 child_added 事件侦听器吗?
儿童活动
子事件被触发以响应发生在节点的子节点上的特定操作,这些操作来自一个操作,例如通过 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) {
}
})