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

291
Vistas
Firebase swift no recupera todos los valores secundarios

Tengo un fragmento de código dentro de mi aplicación iOS construida con Swift, para recuperar todos los nodos de una base de datos en tiempo real de Firebase. Cuando ejecuto el código a continuación, noté que no devuelve todos los nodos secundarios.

Cuando consulto los nodos particulares que no se devuelven individualmente, al principio el código devuelve 'nil' y luego, en un segundo intento, recupera los nodos. (sin hacer ningún cambio de código en el proceso). Siguiendo este proceso, el nodo comienza a aparecer en los resultados con la función recuperar todos los nodos.

Ejemplo 1: Primero devuelve cero, luego, en un segundo intento, devuelve el nodo. Que puedo ver desde la consola y definitivamente existe en la base de datos.

 ref?.child("transactions").child(email).child("14526452327").observeSingleEvent(of: .value, with: { (snapshot) in // Get user value let value = snapshot.value as? NSDictionary print(value) print("!!****************!!") // ... }) { (error) in print(error.localizedDescription) }

Lo siguiente se utiliza para recuperar todos los valores secundarios; al principio, esto no obtiene todos los nodos, sin embargo, después de ejecutar el código del Ejemplo 1 (dos veces), comienza a devolver el nodo en cuestión.

 ref?.child("transactions").child(email).observeSingleEvent(of: .value, with: { (snapshot) in let childrenCount = snapshot.childrenCount var counter : Int = 0 for trans in snapshot.children.allObjects as! [DataSnapshot] { counter = counter + 1 self.ref?.child("transactions").child(email).child(trans.key).observeSingleEvent(of: .value, with: { (snapshot2) in

Aquí hay una captura de pantalla de la estructura de Firebase DB;

También verifiqué mis límites de consultas y datos de Firebase y no estoy ni cerca del umbral de la cuenta gratuita. Cualquier ayuda es muy apreciada.

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

0

Prueba esto:

 func getData() { // Making a reference let transactionRef = Database.database().reference(withPath: "transactions") transactionRef.observeSingleEvent(of: .value, with: { (snapshot) in // Printing the child count print("There are \(snapshot.childrenCount) children found") // Checking if the reference has some values if snapshot.childrenCount > 0 { // Go through every child for data in snapshot.children.allObjects as! [DataSnapshot] { if let data = data.value as? [String: Any] { // Retrieve the data per child // Example let name = data["name"] as? String let age = data["age"] as? Int // Print the values for each child or do whatever you want print("Name: \(name)\nAge: \(age)") } } } }) }
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