从dataSnapshot中的dataSnapshot中提取值

时间:2019-04-16 00:24:39

标签: java android firebase firebase-realtime-database

我无法从dataSnapshot的Firebase数据库dataSnapshot中获取String值。我想遍历“表” dataSnapshot中的键,然后使用每个键在另一个dataSnapshot中打印一个值。我从内部快照中打印的值是正确的,但不适用于外部快照和我要分配给它的变量。有没有更正确的方法来做到这一点?这是我正在尝试的示例:

String extracted;
String key;

onCreate(){

DatabaseReference dbRef1 = FirebaseDatabase.getInstance().getReference().child("Table");

      dbRef1.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

                for (DataSnapshot data : dataSnapshot.getChildren()){
                    key = data.getKey();

                    DatabaseReference dbRef2 = FirebaseDatabase.getInstance().getReference().child(key);

                    databaseReference.addValueEventListener(new ValueEventListener() {
                        @Override
                        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                            extracted = dataSnapshot.getValue().toString();
                            System.out.println(extracted);//prints correct value
                        }

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

                        }
                    });

                    System.out.println(extracted); //prints null
                }
            }

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

        }
    });

}

0 个答案:

没有答案