извлечение связанных данных с использованием того же идентификатора пользователя - PullRequest
0 голосов
/ 20 января 2020

enter image description here

я пытаюсь прочитать связанные данные из dataorder , связанные с использованием userID из datauser .

private void cobacoba(){
        FirebaseUser user= FirebaseAuth.getInstance().getCurrentUser();
        String userid = user.getUid();
        DatabaseReference databaseUser = FirebaseDatabase.getInstance().getReference("datauser");
        databaseUser.child(userid).addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                String nama = dataSnapshot.getValue(dataUser.class).getUserId();
                hey.setText("haloo "+nama);
            }

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

            }
        });


    }

Я использую приведенный выше код для чтения данных из datauser , но как мне прочитать связанные данные в dataorder ? я пытаюсь таким же образом прочитать idOrder из dataorder , но значение всегда null . Может ли кто-нибудь помочь, пожалуйста?

FirebaseUser user= FirebaseAuth.getInstance().getCurrentUser();
        final String userid = user.getUid();
        DatabaseReference databaseOrder = FirebaseDatabase.getInstance().getReference("dataorder");
        databaseOrder.child(userid).addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                final String idorder = dataSnapshot.getValue(dataOrder.class).getIdOrder();
                if (!TextUtils.isEmpty(idorder)){
                    status.setText(idorder);
                    FirebaseUser user= FirebaseAuth.getInstance().getCurrentUser();
                    final String userid = user.getUid();
                    final DatabaseReference databaseOrder = FirebaseDatabase.getInstance().getReference("dataorder");
                    databaseOrder.child(userid).child(idorder).addValueEventListener(new ValueEventListener() {
                        @Override
                        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                            String haritanggal = dataSnapshot.getValue(dataOrder.class).getHaritanggalOrder();
                            String jamlapangan = dataSnapshot.getValue(dataOrder.class).getLapanganjamOrder();
                            idordeer.setText("Order ID = "+idorder);
                            jamtanggal.setText("Tanggal dan Waktu = "+jamlapangan+" Tanggal "+haritanggal);
                        }

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

                        }
                    });
                }else {
                    status.setText("no current order");
                }
                status.setText("id anda= "+idorder+" ....."); //<<<id value always null, why ?????
            }

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

            }
        });

используя код выше, я обнаруживаю idOrder всегда ноль, поэтому я не могу получить доступ к данным внутри него, потому что у меня нет ключа. Любое предложение, пожалуйста?

1 Ответ

1 голос
/ 20 января 2020

Пожалуйста, проверьте ваш запрос:

databaseUser.child(userid).child(idorder)

вместо использования:

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