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) {

        }
    })