3

I am trying to add Timestamp in Firestore document on Firebase Cloud functions.

I had tried firestore.Timestamp.fromDate(new Date()), but its not working.

const functions = require('firebase-functions');
const admin = require('firebase-admin');
const firestore = admin.firestore();
const createdAt = firestore.Timestamp.fromDate(new Date());
console.log(createdAt);

Value of createdAt should return the server timestamp, but its throwing error.

allenski
  • 1,652
  • 4
  • 23
  • 39
atultherajput
  • 175
  • 3
  • 18

4 Answers4

7

Instead of this:

const firestore = admin.firestore();
const createdAt = firestore.Timestamp.fromDate(new Date());

Try this:

const firestore = admin.firestore;
const createdAt = firestore.Timestamp.fromDate(new Date());

Might be hard to spot the difference. So here is the explanation: You are calling the function "firestore()" of the object "admin" instead of accessing the property "firestore" of the object "admin" which has the property "Timestamp" you are looking for.

gparis
  • 1,247
  • 12
  • 32
Jan
  • 150
  • 3
  • 11
2

This line of code has a syntax error in it. It's not valid JavaScript:

const createdAt: firestore.Timestamp.fromDate(new Date());

It looks like you meant to write this:

const createdAt = firestore.Timestamp.fromDate(new Date());
Doug Stevenson
  • 297,357
  • 32
  • 422
  • 441
0

I personallly used const timestamp = new Date().getTime(); then saved it to the firstore document and it worked.

adeboye0
  • 592
  • 1
  • 4
  • 9
0

When using cloud function hooks specifically functions.auth.user().onCreate((user) => {}) I use the user.metadata.creationTime to get the exact creation time without having to go into timezone and date/time issues.

Ziad Alame
  • 772
  • 6
  • 16