Как читать и записывать данные в Firebase в фоновом потоке в андроид?

У меня есть фрагмент с RecyclerView, в который я загружаю данные из FireBase; также реализована кнопка, при нажатии которой в БД Firebase записывается 10тыс. объектов User(из полей только name);

Код записи и чтения из БД я вынес в AsyncTask, но при тестировании приложения, когда нажимаю кнопку добавляющую 10тыс Userов, то UI подвисает и не реагирует, тоже самое происходит и при чтении из БД;

Почему происходит так, если я вынес код чтения и записи в фоновый поток ASyncTask?

Вот мой код :

private class MyAsyncTask extends AsyncTask<Void, Void, Void> {

    @Override
    protected Void doInBackground(Void... parameter) {


 //Загрузка данных из БД**********************
        mDbRef.addValueEventListener(new ValueEventListener() {


            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {

                if (list.size() > 0)
                    list.clear();

                for (DataSnapshot ds : dataSnapshot.getChildren()) {
                    User user = ds.getValue(User.class);
                    assert user != null;
                    list.add(user);
                }
                adapter.notifyDataSetChanged();
            }
            @Override
            public void onCancelled(DatabaseError error) {

            }
        });


        //Запись данных в БД**********************
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                for (int i = 0; i < 10000; i++){
                    User user = new User("User " + i);
                    String userId = mDbRef.push().getKey();
                    mDbRef.child(userId).setValue(user);
                }
            }
        });


        return null;
    }


}

Ответы (0 шт):