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

Я пытаюсь получить данные из следующей коллекции "Автобусы" , если скажем Bus_Driver == "xyz" .

Мой тест Firebase выглядит следующим образом:

enter image description here

Я получаю ссылку на базу данных с этим кодом:

 busInfoReference= FirebaseDatabase.getInstance().getReference("Buses");

Следующий примененный мной цикл не работает правильно:

for(DataSnapshot ds : dataSnapshot.getChildren()){
            busInfo = ds.getValue(BusInforamtion.class);
            if(ds.exists()) {
                if(busInfo.getBus_Driver().equalsIgnoreCase(driverName))
                {
                    saveData()

                    break;
                    //}
                }
            }

Как применить цикл для получения необходимых данных?Заранее спасибо.

1 Ответ

0 голосов
/ 16 сентября 2018

Чтобы решить эту проблему, вам нужно запросить вашу базу данных следующим образом:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
Query query = rootRef.child("Buses").orderByChild("Bus_Driver").equalsTo("xyz");
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            String Bus_Driver = ds.child("Bus_Driver").getValue(String.class);
            Log.d(TAG, Bus_Driver);
        }
    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {
        Log.d(TAG, databaseError.getMessage());
    }
};
query.addListenerForSingleValueEvent(valueEventListener);

Вывод в вашем logcat будет содержать все имена драйверов шины.

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