Написание метода, который возвращает асинхронное значение, которого может не быть, может вызвать NullPointers, если вы вызовите его до того, как он получит данные.
Чтобы сделать это простым, поскольку метод readItemsFromDatabase
является общедоступным, вы можете вызвать его с вашего MyAnimalsActivity
и получить оттуда ваши данные.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my_animals);
DatabaseService databaseService = new DatabaseService();
databaseService.readItemsFromDatabase(new DatabaseService.FirebaseCallback() {
@Override
public void onCallback(List<Animal> list) {
Log.d("DATABASE_TAG", list.toString());
}
});
...
Я изолировал вашу проблемус моим проектом, и он работает;Кроме того, вы можете проверить шаблон MVP, который решит все эти проблемы для вас, и ваш код станет чище.