Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

190
Visualizações
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 à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda