Как читать и записывать данные в 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;
}
}