Sritam
Sritam

Reputation: 3192

Getting server timestamp in firebase while using functions

      // Create the user document
      const userRef = db.collection('Users').doc(uid)

      transaction.set(userRef, { 
        email,
        createTime : admin.database.ServerValue.TIMESTAMP,
      });

The placeholder {.sv: "timestamp"} doesn't get converted to a timestamp even on writing to the document.

Upvotes: 0

Views: 256

Answers (1)

Renaud Tarnec
Renaud Tarnec

Reputation: 83191

You are actually mixing up Firestore (e.g. db.collection('Users').doc(uid) or transaction.set()) and the Realtime Database (admin.database.ServerValue.TIMESTAMP).

With Firestore in a Cloud Function, to use "sentinel values that can be used when writing document fields", do as follows:

const functions = require('firebase-functions');
const admin = require('firebase-admin');

const FieldValue = require('firebase-admin').firestore.FieldValue;

//...
transaction.set(userRef, { 
     email,
     createTime : FieldValue.serverTimestamp()
});

Upvotes: 1

Related Questions