Сделайте запрос для получения информации о странах каждого континента. База данных Firebase Realtime - PullRequest
0 голосов
/ 05 июля 2018

У меня есть код (который работает), который позволяет мне найти все страны определенного континента:

 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);

И это структура моего Firebase Realtime Database для этого кода:

enter image description here

Я создал эту структуру для тестирования. Я использовал это вместо:

enter image description here

Проблема в том, что мой код не работает для этой структуры. Как я могу получить страны, которые имеют Continente = Europa?

1 Ответ

0 голосов
/ 05 июля 2018

Вам необходимо использовать запрос:

FirebaseDatabase mDatabase=FirebaseDatabase.getInstance();
DatabaseReference paisNomeContinentes = mDatabase.getReference().child("paises");             
Query queries=paisNomContinentes.orderByChild("Continente").equalTo("Europa");
queries.addListenerForSingleValueEvent(valueEventListener1);

Снимок находится на дочернем paises, затем с помощью запроса вы сможете получить данные, для которых Continente = Europa

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