Как читать данные из двух ссылок на базы данных Firebase Realtime одновременно? - PullRequest
0 голосов
/ 26 мая 2020

У меня есть класс. Конструктор класса принимает несколько параметров, но мне нужен доступ к 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, который предоставляет мне доступ к данным из одной из моих ссылок.

А как работать с двумя ссылками одновременно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...