typescript - Marca de tiempo de Firestore no reconocida como tal en la consola
Tengo un script que carga algunos datos en Firestore desde una hoja de Excel. Para cada entrada que se cargue, quiero agregar dos campos, dateAdded y dateModified.
const service:Service = {
name: data.PROFISSIONAL,
description: data.DESCRICAO,
category: data.CLASSIFICACAO,
cellphones,
phones,
reviews: reviews,
numReviews: reviews.length,
excluded: data.EXCLUIDO === 'SIM',
instagram: data.INSTAGRAM,
location: data.LOCAL,
dateAdded: Timestamp.now(),
dateModified: Timestamp.now(),
tags: getTags(data.CLASSIFICACAO)
};
Tengo un paso intermedio que guarda un arreglo de estos servicios en un objeto json. Luego, los datos se suben a Firestore:
const jsonToFirestore = async () => {
console.log(`Uploading table`)
try {
console.log('Initializing Firebase');
initializeApp(serviceAccount);
console.log('Firebase Initialized');
await restore('./data/services.json');
console.log('Upload Success');
}
catch (error) {
console.log(error);
}
};
Sin embargo, cuando miro en la consola de Firebase, los campos de fecha no han sido reconocidos como marcas de tiempo.
¿Hay alguna forma de que sean reconocidos? Como esto, por ejemplo:
Agradezco cualquier ayuda proporcionada.
Respuesta #1
Parece que este formato del Timestamp está funcionando como se esperaba:
Un sello de tiempo representa un punto en el tiempo independiente de cualquier zona horaria o calendario, representado como segundos y fracciones de segundos con resolución de nanosegundos en tiempo Epoch UTC.
Intenta usar el método toDate para convertir un Timestamp en un objeto Date de JavaScript.
Respuesta #2
Como dijo el usuario de arriba:
const date = new Date(yourTimestampObj.seconds * 1000);
esto convertirá tu Timestamp (unix) en un objeto de fecha que puedes usar
.toDateString()
u otros métodos. Por cierto, el timestamp de Unix es cuántos segundos han pasado desde la época Unix que ocurrió en 1970.

