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

121
Views
Nodejs Firestore: no devuelve nada

Estoy usando firebase para verificar el historial de castigos de los usuarios, y cuando lo llamo: quiero que devuelva la matriz de incrustaciones para publicar en lugar de solo eso. Estoy esperando la función, así que estoy un poco confundido por qué sucede esto.

  • Esto es lo que sucede en el archivo console.log:

    ingrese la descripción de la imagen aquí

     [AsyncFunction: CheckHistory]
  • LLAMAR

     let hist = await CheckHistory(id); console.log(CheckHistory);
  • FUNCIÓN

     async function CheckHistory(user){ CheckBan(user); let historyArray = []; const colRef = db.collection('punishments') colRef.where('user', '==', user).get().then(async querySnapshot => { length = querySnapshot.size; if (querySnapshot.empty){ console.log(querySnapshot.size) return 0; } else { let docs = querySnapshot.docs; for (let documentSnapshot of docs) { const revoke = documentSnapshot.get('revoke') let active = documentSnapshot.get('active') if (active = true){ active = "Active" } else { active = `Revoked for ${revoke}` } const mod = documentSnapshot.get('mod') const reason = documentSnapshot.get('reason'); const time = documentSnapshot.get('time'); let type = documentSnapshot.get('type'); if (type == 1){ type = "Blacklist"; } else if (type == 2){ type = "Dayban"; } else if (type == 3){ type = "Warning"; } const username = await API.getUsernameFromId(user); const modname = await API.getUsernameFromId(mod); const historyEmbed = new MessageEmbed() .setColor('#0099ff') .setTitle(`'Punishment of ${username}:${user}`) .setDescription(`This is a punishment log.`) .addFields( { name: 'Status', value: `${active}`}, { name: 'Moderator', value: `${modname}:${mod}` }, { name: 'Reason', value: `${reason}` }, { name: 'Type', value: `${type}` }, { name: 'Time', value: `<t:${time}>`} ) historyArray.push(historyEmbed); if (historyArray.length >= length) { return historyArray; } } } }); }
about 4 years ago · Santiago Gelvez
1 answers
Answer question

0

Como declaró @Sergey Sosunov :

Olvidaste devolver algo de tu método, deberías

 return colRef.where('user', '==', user).get().then....

O para cambiar el enfoque de devolución de llamada .then() para await realmente uno. Me gusta:

 const querySnapshot = await colRef.where('user', '==', user).get();

y así.


Además, la forma en que llama a la función solo devuelve la definición de función; debe pasar con parámetros o imprimir el valor de la variable igual a su función. Por ejemplo:

 //Sample function function test(id) { return id; } //Returns function definition console.log(test) //Returns function value console.log(test(1)) //Print variable value let x = test(1) console.log(x)

about 4 years ago · Santiago Gelvez 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!