Android - Recuperar datos de una database en formato Json

 
Vista:

Recuperar datos de una database en formato Json

Publicado por Martin (1 intervención) el 18/06/2018 18:25:35
Buenos dias/tardes o noches compañeros.

Tengo un gran problema programando en Kotlin y queriendo traer informacion desde la database de Firebase.
Leer la base de datos me va perfecto, traer datos desde la base de datos en formato Json me va perfecto, pero el problema aparece cuando quiero traer cualquier nodo con sus respectivos hijos, osea.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
{
  "Pendientes" : {
    "CDT-2" : {
      "Cantidad" : 2,
      "Codigo" : "RFF-1",
      "Obra" : "Campo del tesoro"
    },
    "PLEE-1" : {
      "Cantidad" : 1,
      "Codigo" : "RFF-1",
      "Obra" : "Plaza logistica"
      },
    "PLEE-3" : {
      "Cantidad" : 1,
      "Codigo" : "RFF-1",
      "Obra" : "Plaza logistica"
      },
    "PLEE-5" : {
      "Cantidad" : 1,
      "Codigo" : "RFF-1",
      "Obra" : "Alicorp"
      }
  }
}

digamos que estos son mis datos Json la ruta completa seria
1
https://"nombre de la base de datos de firebase".com/basededatos/listadeplanos/planos/pendientes

y lo que necesito es traer la informacion de
PLEE-5
PLEE-3
PLEE-1
CDT-2
etc

El codigo que estoy armando para que me traiga la informacion que supongo estar solicitando es este
1
2
3
4
5
6
7
val dbOBRA = FirebaseDatabase.getInstance().getReference()
                .child("Pendientes")
 
       dbOBRA.addValueEventListener(object : ValueEventListener {
            override fun onDataChange(p0 : DataSnapshot) {
                var plano = p0.getValue(Planos::class.java)
                        Log.d("LOG", "Plano" + plano)

Mi clase Planos esta formada de la siguiente manera

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Planos {
 
    var IDdePlano: String? = null
    var obra: String? = null
    var cantidad: Int = 0
    var detalle: String? = null
    var peso: Float = 0.toFloat()
 
    override fun toString(): String {
        return "Planos: \n" +
                "  IDdePlano : " + IDdePlano + "\n" +
                "  obra : " + obra + "\n" +
                "  cantidad : " + cantidad + "\n" +
                "  detalle : " + detalle + "\n" +
                "  peso : " + peso + "\n"
    }
}

Y el valor que me trae en mi log es

1
Pendientes = null

Como puedo hacer para que me traiga la informacion de los nodos de Pendientes sin tener que especificarlos?
1
2
3
ya que si yo en
 val dbOBRA = FirebaseDatabase.getInstance().getReference()
                .child("Pendientes")

en vez de colocar "pendientes" coloco el nombre de alguno de los planos osea

val dbOBRA = FirebaseDatabase.getInstance().getReference()
.child("PLEE-1")[/code]

me trae los datos correspondientes pero lo que yo quiero hacer es que esto sea dinamico y que se aplique cuantas veces planos haya. Que posibilidades existen?

Desde ya muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder