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

245
Vistas
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 Respuestas
Responde la pregunta

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 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