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

Я пытаюсь разработать приложение для школ, в которых в моей базе данных есть несколько школ, в каждой школе есть список водителей автобусов, а у каждого водителя автобуса есть список детей (см. Рисунок ниже). У каждого учащегося есть идентификатор, и я храню его в виде строки в моем приложении (т.е. в этом случае String id = "76943"). Я хочу использовать это значение, чтобы узнать, к какому ученику принадлежит этот идентификатор, и к какому водителю принадлежит этот ученик и к какой школе принадлежит этот водитель. По сути, я хочу получить все родительские значения из этого дочернего ключа, есть ли способ сделать это.

Пожалуйста, посмотрите эту картинку. У меня есть идентификатор, и я хочу следующее как строковое значение.

  1. child1.
  2. Driver1
  3. Международная индийская школа Dammam

enter image description here

Вот мой код

    EditText driverPhone;
    CountryCodePicker ccp;
    Button loginDriver;
    FirebaseAuth firebaseAuth;
    DatabaseReference databaseReference;
    String countryCode = "+91";
    String phoneNumber;
    String schoolName;
    FirebaseUser user;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_driver_login);
        driverPhone = findViewById(R.id.driverPhone);
        loginDriver = findViewById(R.id.loginDriver);
        ccp = findViewById(R.id.ccp);
        firebaseAuth = FirebaseAuth.getInstance();
        databaseReference = FirebaseDatabase.getInstance().getReference();
        user = firebaseAuth.getCurrentUser();
        
    }
        
    private void getParentValues(){
        databaseReference.child("Schools").orderByChild("id").addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                for (DataSnapshot ds : dataSnapshot.getChildren()) 
                    String schoolName = ds.getKey();
                    String driverName = ds.child.getKey();
                    


                }
            }

            @Override public void onCancelled(DatabaseError error) {}
        });
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...