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

239
Views
Recupere una matriz de un documento de Firestore y guárdela en Node.Js y luego utilícela como token para enviar notificaciones.

He estado tratando de resolver esto durante horas y simplemente no puedo. Todavía soy un principiante con Node.js y Firebase. Necesito su ayuda para poder recuperar la matriz de tokens en mi colección de "datos de usuario" en Node.js y poder usarla para enviar notificaciones en Cloud Function. Hasta ahora esto es en lo que he estado trabajando. Así es como se ve mi base de datos: ingrese la descripción de la imagen aquí

El ID del receptor se recopila cuando tengo una función onCreate cada vez que un usuario envía un mensaje nuevo. Luego lo usé para acceder a los datos de usuario de un usuario específico que usa el ID del receptor como su UID.

En la función de la nube , pude iniciar la función y recuperar el ID del receptor e imprimir el token de usuario [clave]. Sin embargo, cuando trato de empujar el token, no pasa y da como resultado un error que dice que el token está vacío. Ver la imagen: ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

Su ayuda significaría mucho. ¡Gracias!

 newData = snapshot.data(); console.log("Retrieving Receiver Id"); console.log(newData.receiverId); //uid of the user const tokens = []; const docRef = db.collection('userdata').doc(newData.receiverId); docRef.get().then((doc) => { if (doc.exists) { console.log("DocRef exist"); const userToken = doc.data().tokens; for(var key in userToken){ console.log(userToken[key]); tokens.push(userToken[key]); } } else { // doc.data() will be undefined in this case console.log("No such document!"); } }).catch((error) => { console.log("Error getting document:", error); }); //Notification Payload var payload = { notification: { title: newData.sendBy, body: 'Sent you a message', sound: 'default', }, data: { click_action : 'FLUTTER_NOTIFICATION_CLICK', route: '/telconsultinbox', } }; console.log("Sending Notification now."); console.log(tokens); try{ //send to device const response = await admin.messaging().sendToDevice(tokens, payload); console.log('Notification sent successfully'); console.log(newData.sendBy); }catch(err){ console.log(err); }
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Creo que debería evitar usar for..in para iterar a través de una matriz (puede leer más sobre esto en esta respuesta ). Prueba una de estas 2 opciones:

  1. Podrías usar forEach() , que es más elegante:
 userToken.forEach((token) => { console.log(token); tokens.push(token); });
  1. declaración for-of :
 for(const token of userToken){ console.log(token); tokens.push(token); }

Además, consideraría cambiar el nombre de userToken a userToken s , ya que debe contener varios valores. Hace que el código sea un poco más legible.

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!