Si hago: new firebase.firestore.Timestamp.now() y uso console.log() en él, la consola imprime lo siguiente:
{"nanosegundos": 89000000, "segundos": 1631289143}
Si ahora tomo esos nanosegundos y segundos y trato de crear la misma marca de tiempo como esta: new firebase.firestore.Timestamp(89000000, 1631289143) recibo el error:
FirebaseError: Marca de tiempo en nanosegundos fuera de rango: 1631289143
¿Puede alguien por favor explicarme este extraño comportamiento? ¿Cómo es posible que no pueda recrear la marca de tiempo de hace solo unos segundos?
Esto se debe a que está intercambiando los valores: el segundo argumento pasado al constructor de marca de tiempo serán los nanoseconds (89000000 en su ejemplo) pero, en su lugar, pasa el valor de seconds (1631289143 en su ejemplo, que está fuera del rango permitido , es decir, de 0 a 999.999.999 inclusive).
Deberías hacer
new firebase.firestore.Timestamp(1631289143, 89000000); Probablemente cometiste el error porque console.log ordena las propiedades del objeto ...