Firebase / android ¿cómo obtener claves y valores secundarios?

Tengo este DB:

users: {
     0 : {
         name: xx
         age: 11
         books:{
               0 : true
               3 : true
         }
     }
     1 : {
         name: yy
         age: 12
         books:{
               1 : true
               4 : true
         }
     }
}

Tengo referencia a db als:

database = FirebaseDatabase.getInstance();
refdb = database.getReference();

y consulta als:

Query = refdb.child("users");

Necesito obtener todos los pares (nombre: valor) y para los usuarios pares de libros (id: verdadero) als:

0 : true
3 : true

Estoy usando esto para obtener pares (id: verdadero):

refdb.child("users").child("books").addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) { 
        pck.setText(pack);
        for (DataSnapshot dttSnapshot2 : dataSnapshot.getChildren()) {
             pack = dttSnapshot2 .getKey().toString()+":"+dttSnapshot2 .getValue().toString();
             pck.append(pack);
         }
...

Donde pck es un textView. Mi problema es que cada vez que imprime la cadena vacía en textView. ¿Cómo puedo obtener esos datos y escribirlos en una vista de texto?

Respuestas a la pregunta(1)

Su respuesta a la pregunta