1

If I do: new firebase.firestore.Timestamp.now() and use console.log() on it, the console prints out the following:

{"nanoseconds": 89000000, "seconds": 1631289143}

If I now take those nanoseconds and seconds and try to create out of that the same timestamp like this: new firebase.firestore.Timestamp(89000000, 1631289143) I receive the error:

FirebaseError: Timestamp nanoseconds out of range: 1631289143

Can someone pls explain this strange behavior to me? How is it possible that I cannot recreate the timestamp from just few seconds ago?

1 Answers1

2

This is because you are swapping the values: The second argument passed to the Timestamp constructor shall be the nanoseconds (89000000 in your example) but, instead, you pass the value of seconds (1631289143 in your example, which is out of the allowed range, i.e. 0 to 999,999,999 inclusive).

You should do

new firebase.firestore.Timestamp(1631289143, 89000000);

You probably did the error because console.log sorts the object properties...

Renaud Tarnec
  • 79,263
  • 10
  • 95
  • 121
  • 1
    Indeed `console.log()` messed up my understanding of the Timestamp Object. It really switched nanoseconds with seconds and still does when I print it out in my console, but thx to your answer I was able to understand and overcome this problem! – Kubaguette The Testobun Sep 10 '21 at 23:13