web-dev-qa-db-ja.com

Firestore for FirebaseでCloud Functionsのサーバータイムスタンプを取得するにはどうすればよいですか?

リアルタイムデータベースを使用せず、代わりにFirestoreを使用して、サーバーのタイムスタンプを取得するにはどうすればよいですか?

import * as functions from 'firebase-functions'
import { Firestore } from '@google-cloud/firestore'

const db = new Firestore()

export let testIfMatch = functions.firestore
        .document('users/{userId}/invites/{invitedUid}')
        .onCreate(event => {
            let invite = <any>event.data.data()

            if (invite.accepted == true) {
              return db.collection('matches').add({
                friends: [userId, invitedUid],
                timestamp: doc.readTime // <--- not exactly the actual time
              })
            }
13
Thomas

Firestoreでサーバーのタイムスタンプを使用する場合と少し異なります:

_// Get the `FieldValue` object
var FieldValue = require("firebase-admin").FieldValue;

// Create a document reference
var docRef = db.collection('objects').doc('some-id');

// Update the timestamp field with the value from the server
var updateTimestamp = docRef.update({
    timestamp: FieldValue.serverTimestamp()
});
_

機能していない場合は、var FieldValue = require("firebase-admin").FieldValue;var FieldValue = require("firebase-admin").firestore.FieldValue;で編集できます

28

これを行うためのもう少し簡潔な方法を次に示します。

_import * as admin from "firebase-admin"_

const timestamp = admin.firestore.FieldValue.serverTimestamp();

2
Lindauson