Firebase addChildEventListener给出循环

时间:2018-01-28 09:12:13

标签: java android firebase firebase-realtime-database

我的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。

0 个答案:

没有答案