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

340
Views
¿Busca una clave en la base de datos de Firebase sin descargar el nodo principal?

Tengo una base de datos en tiempo real de Firebase que está estructurada así:

 referrals Test1: 0 Test2: 0

Estoy tratando de verificar si existe "referral_code" en la base de datos, este es el código que estoy usando:

 exports.validateReferral = functions.https.onCall((data, context) => { const referral_code = data.ref console.log("Cloud verifying referral code, code is " + referral_code) admin.database().ref().child("referrals").once("value", snapshot => { if (snapshot.hasChild(referral_code)) { console.log("referral code is valid"); return true } else { console.log("referral code is not valid"); return false } }) })

Cuando lo ejecuto, muestra "Código de referencia de verificación de la nube, el código es Test1", pero tampoco es válido a pesar de que la clave está en la base de datos.

¿Alguna idea de cómo puedo depurar esto? Intenté registrar el valor de "instantánea", pero ninguno de los contenidos de las instantáneas de Firebase muestra los valores reales. ¿Alguien puede ayudarme a encontrar la manera de localizar el problema?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Te estás perdiendo un return en el nivel superior de tu código:

 // 👇 return admin.database().ref().child("referrals").once("value").then((snapshot) => { if (snapshot.hasChild(referral_code)) { console.log("referral code is valid"); return true } else { console.log("referral code is not valid"); return false } })

Sin la devolución de nivel superior, el valor de devolución de la devolución de llamada asíncrona nunca llega a su cliente y (peor aún) el código probablemente finaliza antes de que el resultado se lea de la base de datos.


Pero también recomiendo cambiar el código para no descargar todo el nodo de referrals solo para verificar si existe una clave. Esto logra lo mismo y solo descarga (como máximo) un solo nodo secundario:

 // 👇 👇 return admin.database().ref().child("referrals").child(referral_code).once("value").then((snapshot) => { // 👇 if (snapshot.exists()) { console.log("referral code is valid"); return true } else { console.log("referral code is not valid"); return false } })
about 4 years ago · Juan Pablo Isaza 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!