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

247
Views
Solo se puede llamar al valor de la base de datos de Firebase con una cadena literal, no con una variable

Estoy usando la siguiente función de nube de Firebase para confirmar que existe una variable "referral_code" en la parte de "referencias" de mi base de datos en tiempo real.

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

Para el contexto, aquí está la estructura de mi base de datos.

ingrese la descripción de la imagen aquí

El código anterior funciona como se esperaba (principalmente), si le paso "Test1" o "Test2", devuelve válido, si paso "Test3" no es válido.

 > Cloud verifying referral code, code is Test1 > 0 > referral code is valid > Cloud verifying referral code, code is Test2 > 0 > referral code is valid > Cloud verifying referral code, code is Test3 > null > referral code is not valid

Pero... si paso "Test3" o un valor que no está en la base de datos, a pesar de que la función de la nube muestra que no es válido, el código del lado del cliente que uso para llamar a esa función vuelve válido de todos modos.

 var ref = new URLSearchParams(window.location.search).get('ref') console.log("checkReferral ref is " + ref) console.log("checkReferral window.location.search is " + window.location.search) if (ref) { console.log("checkReferral ref found") if (validateReferral({ ref: ref })) { console.log("checkReferral ref is valid") return true } else { console.log("checkReferral ref is not valid") return false } }

Y esta es la salida:

 checkReferral ref is Test3 checkReferral window.location.search is ?ref=Test3 checkReferral ref found checkReferral ref is valid

¿Alguna idea de por qué podría ser esto?

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

0

Resolví el problema. Al llamar a validateReferral desde el lado del cliente, necesitaba envolver la llamada de función en una promesa.

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!