Me gustaría mostrar la fecha de mi base de datos (firestore) en mi interfaz, pero solo me da segundos y nanosegundos como valores cuando es claramente correcto en la base de datos.
Estoy haciendo una función de mapa para obtener los datos de la base de datos.
<Text style={styles.datecon}>{comp.date.seconds}</Text>El código anterior funciona pero me da una cadena de todos los segundos.
<Text style={styles.datecon}>{comp.date}</Text>El código anterior no funciona debido a que es un objeto y debe expandirse, pero solo puedo expandirlo a segundos y nanosegundos.
Aquí es donde consuelo. registro los datos
Aquí están los datos en firestore
Cree una función para convertir segundos hasta la fecha.
const convertToDate = (seconds) => { return new Date(seconds).toString(); }Luego úsalo en tu jsx.
<Text style={styles.datecon}>{convertToDate(comp.date.seconds)}</Text>Gracias a la respuesta (de bgcodes) me las arreglé para corregir el error y también arreglar la fecha para no decir 1970, solo debe * 1000 para obtener la fecha correcta
const convertToDate = (seconds) => { return new Date(seconds*1000).toString(); } <Text style={styles.datecon}>{convertToDate(comp.date.seconds)}</Text>Lo que obtiene del SDK es un tipo específico de Firestore llamado Timestamp , que tiene métodos útiles enumerados aquí .
Uno de estos es obtener un objeto Date de la marca de tiempo, lo que haría con , mucho más simple con:
<Text style={styles.datecon}>{comp.date.toDate()}</Text>