首页 > 解决方案 > 我如何按顺序执行android firebase多个childeventlistiner

问题描述

我在一项活动中有 4 个 ChildEventListener。当活动启动时,第 4 个 ChildEventListener 执行第 1 个,然后执行第 3 个、第 2 个、第 1 个,有时它会以相反的顺序 1、2、3、4。所以它不是按顺序加载的。下面提到了 ChildEventListener 侦听器示例。

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

        }
    });

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

        }
    });

标签: androidfirebase-realtime-database

解决方案


我认为您不太了解这些侦听器,正在为注册到它的节点调用回调,只有这个节点没有其他人,所以如果您有多个节点并且每个节点都注册了回调,那么当任何更改发生时节点只会触发相应的回调,因此顺序应该是节点中的更改而不是回调,我希望这能回答您的问题。


推荐阅读