В моем приложении есть фрагмент, который позволяет пользователю выполнять фильтрованный поиск стран, которые он хочет видеть.
Это выглядит так (пользователь выбирает континенты стран, которые он хочет видеть, а затем появляются все страны этих континентов):
Я использую Firebase Realtime database
, чтобы сохранить все страны с их названиями и изображениями каждой страны. Вот как выглядит мое дерево JSON (здесь показаны не все страны):
(Кстати, извините, потому что все по-португальски):
В настоящее время я могу отображать все страны определенного континента, но, если пользователь выбирает более одного континента, я не могу запросить все страны ...
Вот код, который я сейчас должен сделать:
DatabaseReference paisNomeContinentes = mDatabase.child("continentes").child(Constants.PAISES_EUROPA).child("Paises"); // C1 - ÁFRIA (Constants.PAISES_AFRICA)
ValueEventListener valueEventListener1 = new ValueEventListener() { // C2 - ÁSIA (Constants.PAISES_ASIA)
@Override // C3 - ANTÁRTIDA (Constants.PAISES_ANTARTIDA)
public void onDataChange(DataSnapshot dataSnapshot) { // C4 - AMÉRICA (Constants.PAISES_AMERICA)
List<String> nomePaisList = new ArrayList<>(); // C5 - EUROPA (Constants.PAISES_EUROPA)
// C6 - OCEANIA (Constants.PAISES_OCEANIA)
for(DataSnapshot ds : dataSnapshot.getChildren()) {
String nomePais = ds.child("Nome").getValue(String.class);
nomePaisList.add(nomePais);
}
int urlCount = nomePaisList.size();
int randomNumber = new Random().nextInt(urlCount);
List<String> randomNomePaisList = new ArrayList<>();
for (int i=0; i<=9; i++) {
randomNomePaisList.add(nomePaisList.get(randomNumber));
txtHomeDesc.setText(randomNomePaisList.get(i)); // Inserir na TextView o nome do respetivo país
}
}
@Override
public void onCancelled(DatabaseError databaseError) {}
};
paisNomeContinentes.addListenerForSingleValueEvent(valueEventListener1);
Как я могу получить все страны континентов, которые выбрал пользователь?