Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

598
Vistas
Cómo recuperar datos de una matriz anidada de mapas en Firestore (Kotlin) para RecyclerView

Me gustaría pedir ayuda sobre cómo recuperar datos de Firestore para una matriz de mapas anidada llamada "ciudades" en MutableList, que luego quiero insertar en la vista del reciclador, donde los datos de las "regiones" son para el encabezado y los datos. "ciudades" para los elementos regulares de la lista.

Datos para regiones: MutableList, cuando sigo el procedimiento https://medium.com/firebase-tips-tricks/how-to-map-an-array-of-objects-from-cloud-firestore-to-a-list -of-objects-122e579eae10 por Alex Mamo, funcionó bien, pero los datos para: cities: MutableList , según el mismo enfoque, son nulos (no se pueden recuperar).

¿Puede aconsejarme cómo obtener datos para "ciudades"?

PD: en algún lugar leí la recomendación de iterar sobre "ciudades", pero no tengo idea de cómo, vaya directamente a un ejemplo (idealmente en Kontlin).

Código:

 override fun onViewCreated(view: View, savedInstanceState: Bundle?) { ….. regionsRef.get().addOnCompleteListener { document -> if (document.isSuccessful()) { val documentSnapshot = document.result // Retrieve array of maps for „regions“ val regions = documentSnapshot.toObject(RegionDocument::class.java)?.regions // Retrieve array of maps for „cities“ val cities = documentSnapshot.toObject(CityDocument::class.java)?.cities … } }

Clases de datos para el objeto Ciudad:

 data class City( val cityNumber: Long? = null, val cityName: String? = "" ) data class CityDocument( var cities: MutableList<City>? = null)

Estructura de la tienda de fuego:

ejemplo de estructura de datos en Firestore

ciudades resaltadas - matriz de mapa

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Para poder obtener los datos que corresponden a la estructura de su documento, necesita tres clases:

 class Document { var regions: MutableList<Region>? = null } class Region { var cities: MutableList<City>? = null var regionName: String? = null var regionNumber: Long? = null } class City { var cityName: String? = null var cityNumber: Long? = null }

Y a continuación puede encontrar una solución para leer todas las ciudades:

 val db = FirebaseFirestore.getInstance() val docIdRef = db.collection("collName").document("docId") docIdRef.get().addOnCompleteListener { task -> if (task.isSuccessful) { val document = task.result if (document != null) { val doc = document.toObject(Document::class.java) if (doc != null) { val regions = doc.regions if (regions != null) { for (region in regions) { val cities = region.cities //Do what you need to to do with your List<City>. } } } } } else { Log.d("TAG", task.exception!!.message!!) //Never ignore potential errors! } }

Ahora, simplemente reemplace collName y docId con el que tiene en su base de datos.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda