У меня есть класс. Конструктор класса принимает несколько параметров, но мне нужен доступ к 2 различным ссылкам Firebase для создания объекта моего класса. На данный момент я беру данные из своей базы данных Firebase Realtime, используя обратные вызовы для доступа к ней в разных классах (1-й ответ здесь: Как вернуть DocumentSnapShot в результате метода? ).
Фрагмент кода в качестве примера получения данных из 1 ссылки:
public class Database {
ArrayList<TournamentParameters> tournamentsList = new ArrayList<TournamentParameters>();
ArrayList<String> tournamentsNames = new ArrayList<String>();
DatabaseReference tournamentsReference = database.getReference("Tournaments");
public void readTournaments(final TournamentsCallback tournamentsCallback){
tournamentsReference.addValueEventListener(new ValueEventListener() {
//@RequiresApi(api = Build.VERSION_CODES.O)
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
//filling tournamentsList, tournamentsNames
...
tournamentsCallback.onCallback(tournamentsList, tournamentsNames);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
public interface TournamentsCallback {
void onCallback(ArrayList<TournamentParameters> tournamentsList, ArrayList<String> tournamentsNames);
}
}
public class RatingFragment{
Database base = new Database();
base.readTournaments(new Database.TournamentsCallback() {
@RequiresApi(api = Build.VERSION_CODES.N)
@Override
public void onCallback(ArrayList<TournamentParameters> tournamentsList, ArrayList<String> tournamentsNames) {
ArrayList<PlayerParameters> playersList = new ArrayList<PlayerParameters>();
HashMap<String, Integer> rating = new HashMap<String, Integer>();
ListView listView = (ListView) view.findViewById(R.id.ratingListView);
//some lines of code
...
}
Итак, я пишу свой код внутри метода onCallback, который предоставляет мне доступ к данным из одной из моих ссылок.
А как работать с двумя ссылками одновременно?