Firebase childEventListener производит лаги при использовании в классе обслуживания - PullRequest
0 голосов
/ 27 марта 2020

я использовал firebase childEventListener в классе обслуживания. Именно то, что я сделал в классе обслуживания, как этот вопрос код. Разница только в том, что я использовал вложенный childEventListener

Этот вложенный childEventListener получает данные от потомка потомка с неизвестным идентификатором. И служба становится липкой, и эта служба запускается MainActivity (которая является первой видимой активностью).

Теперь проблема в том, что когда MainActivity запускает службу, устройство зависает до тех пор, пока firebase полностью не прослушает все данные, а при прослушивании завершено, устройство работает отлично. Есть ли какое-либо решение для этой задержки по классу обслуживания?

Возможно ли, что вложенный childEventListener работает на другом потоке, чем, пожалуйста, направляете меня. Спасибо

Ref.addChildEventListener(new ChildEventListener() {
        @Override
        public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s)
        {
            final String uid=dataSnapshot.getKey();
            Ref.child(uid).addChildEventListener(new ChildEventListener()
            {
                @Override
                public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s)
                {
                    Messages messages=dataSnapshot.getValue(Messages.class);
                    String pushKey=dataSnapshot.getKey();
                    if (!(pushKey ==null))
                    {
                        if(currentUid!=null)
                        { 
                            SomeMethods(messages,pushKey,myDbHandler,currentUid,uid);              
                        } 
                    }

                    @Override
                    public void onChildChanged(@NonNull DataSnapshot dataSnapshot, @Nullable String s)
                    {
                        SomeMethods(messages,pushKey,myDbHandler,currentUid,uid);
                    }
...