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

208
Vistas
No obtener resultados de las funciones de la nube por .where()

Estoy usando este código para obtener datos de una colección comparando

 /* eslint-disable */ const functions = require("firebase-functions"); const admin = require('firebase-admin'); admin.initializeApp(); const database = admin.firestore(); exports.checkForPending = functions.pubsub.schedule('* * * * *').onRun(async (context) => { var currentTime = admin.firestore.Timestamp.now(); var total; //getting time from firebase server var firebase_time = admin.firestore.Timestamp.now(); // {'_seconds': 123456, _nanoseconds: 123000000} // Convert map of nanoseconds and seconds to milliseconds var firebase_seconds_to_milliseconds = firebase_time._seconds * 1000; // 123456000 var firebase_nanoseconds_to_milliseconds = Math.round(firebase_time._nanoseconds / 1000000) //123 var milliseconds = firebase_seconds_to_milliseconds + firebase_nanoseconds_to_milliseconds; var firebase_month = firebase_time.toDate().getMonth(); var unix_to_date_before_buffer = new Date(milliseconds); var unix_to_date_after_buffer = new Date(milliseconds); // var unix_to_date = new Date(total); unix_to_date_before_buffer.setSeconds(0); //coverted from 6:38:23 to 6:38:00 unix_to_date_after_buffer.setSeconds(0); unix_to_date_after_buffer.setMinutes(unix_to_date_after_buffer.getMinutes() + 1);//coverted from 6:38:23 to 6:39:00 //Want to edit month in this timestamp; const query = database.collection("users").doc('IELTS').collection('IELTS').where("next", '>=', unix_to_date_before_buffer).where("next", '<=', unix_to_date_after_buffer); // comparing here const snapshot = await query.get(); snapshot.forEach(doc => { console.log(doc.id, '=>', doc.data().name), queryTest2 = database.collection('rest'); queryTest2.add( { 'executed': true, 'name': doc.data().name } ) }); return null; });

No obtengo ningún resultado en la consola. Me pregunto ¿por qué? No vi ninguna nueva colección 'descanso' formada. El tiempo en la colección del parámetro 'siguiente' fue 6:38:24 en la colección del ejemplo.

Lo que estoy tratando de construir: estoy creando una aplicación para un instituto. Estoy registrando usuarios y haciendo una colección que parece - colección (aquí 'fecha' es la fecha de registro y 'siguiente' es el momento en que el pago cambiará automáticamente a 0 debido al comienzo del próximo mes). Ahora estoy ejecutando una función en la nube que verifica todos los días si 'siguiente' es igual a la hora actual del servidor, entonces quiero ejecutar algo (agregar un usuario a una nueva colección llamada 'pendiente') y actualizar 'siguiente' al siguiente mes. que debería verse así: parámetro editado

about 4 years ago · Juan Pablo Isaza
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