Я создаю приложение с использованием базы данных Firebase в реальном времени. Код внутри onDataChange толстеет. Например, есть несколько операторов if внутри части и вложенных. Мне интересно, есть ли предпочтительный способ организовать эту часть. Я хочу отделить часть, которая работает с Firebase, от Activity.
mNode.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
//this part is getting fat
if (dataSnapshot.haschild("aValue")) {
...
if (dataSnapshot.
...
if (dataSnapshot.
...
} else {...




I'm wondering if there's a preferable way to organize this part.
Мне нравится то, как вы используете эти операторы if. Вы используете их внутри обратного вызова, что является правильным способом получения данных из асинхронных методов. При желании вы можете создать метод и передать объект DataSnapshot в качестве аргумента и переместить всю логику в этот метод. Но, на мой взгляд, в таком подходе нет ничего плохого.
Спасибо. Я сохраню свой подход.