Android-студия не проверяет query.addListenerForSingleValueEvent () и ничего не возвращает - PullRequest
0 голосов
/ 17 сентября 2018

Я знаю, что этот вопрос задавался много раз, но все же он не может помочь в решении моего дела.

Я хочу получить один из данных Drivers из следующего теста:

enter image description here

с использованием следующего кода ...

@Override
protected void onCreateonCreate(){
    rootRef = FirebaseDatabase.getInstance().getReference();
    getDriverStatus();
}
public void getDriverStatus(){
    Log.d("Firebase","get driver status called...");   //works fine

    query = rootRef.child("Drivers").orderByChild("email");
    query.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            for(DataSnapshot ds : dataSnapshot.getChildren()) {

                Log.d("Firebase","Searching driver...");      // not working
                String phone = ds.child("mobile").getValue(String.class);
                Log.d("Firebase",phone);

                if(phone.equalsIgnoreCase(getPhone())){
                    Log.d("Firebase","Driver found");
                    break;
                }

            }
        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {

        }
    });
}

Во время отладки я заметил, что Android studio перепрыгивает через это утверждение ..

query.addListenerForSingleValueEvent (new ValueEventListener () {...} и не проверяет его вообще. Журналы также не дают ошибок. Любое тело может сказать мне, что не так в коде!!!

1 Ответ

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

Наконец я решил это, сделав атрибут «запрос» public

Просто изменилось

Query query;

до

public Query query;

и это сработало ...!

Спасибо всем, кто помог мне решить проблему.

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