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

191
Vistas
Múltiples variaciones de marcas de tiempo de Firebase

Guardo una lista de usuarios invitados a una organización, junto con la marca de tiempo que indica cuándo caduca la invitación en Firebase. Cuando extraigo la marca de tiempo de Firebase, la analizo para determinar si aún es válida o ha caducado usando:

Codigo del cliente

 const inviteStatus = invitee?.validUntil.toDate() >= Date.now() ? 'valid_invitee' : 'expired_invitee'

También incorporé una funcionalidad para generar nuevas invitaciones a través de una llamada a Firebase Cloud Functions. Una vez que se ha creado una invitación, devuelvo un nuevo objeto de invitado:

Código de funciones de Firebase

 const expiryDate = admin.firestore.Timestamp.now().toDate() expiryDate.setTime(expiryDate.getTime() + (1000 * 60 * 60 * 24 * 7)) // 7-day expiration return { invitee: { validUntil: admin.firestore.Timestamp.fromDate(expiryDate) } }

La razón por la que no devuelvo solo un objeto Date , sino que lo convierto al formato de Timestamp de tiempo de Firestore es para garantizar que el cliente siempre reciba los datos validUntil en el mismo formato, independientemente de si se lee directamente desde Firestore DB o se devuelve a través de Firebase Cloud Functions.

Sin embargo, una vez que se devuelve este objeto invitado y se ejecuta el código del cliente (consulte el primer fragmento de código), aparece el siguiente error:

TypeError no detectado: invitee.validUntil.toDate no es una función

investigando

Imprimí ambos objetos (uno extraído directamente de DB y otro devuelto a través de Cloud Functions) y noté que el objeto devuelto directamente de DB, cuando se imprime, muestra una ut en Chrome Dev Tools junto al objeto validUntil , mientras que el objeto devuelto de Cloud Funciones no muestra ut .

Objeto impreso consultado desde Firestore ingrese la descripción de la imagen aquí

Objeto impreso devuelto desde Cloud Functions ingrese la descripción de la imagen aquí

Pregunta

¿Por qué Firebase genera dos tipos diferentes de objetos de marca de tiempo donde uno se puede convertir a Date usando la función .toDate() y otro arroja un error?

¿Hay alguna manera de devolver un objeto de marca de tiempo adecuado a través de Cloud Functions en el que pueda aplicar la función .toDate() en el cliente?

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