Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

603
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!