4

リアルタイムデータベース を使用せずにFirestoreを使用して、サーバーのタイムスタンプを取得するにはどうすればよいですか?FirestoreでFirebaseのクラウド機能でサーバのタイムスタンプを取得するにはどうすればよいですか?

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
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").firestore.FieldValue;

+1

おかげで、 '( "firebase-admin" を)必要とvar FieldValue = require("firebase-admin").FieldValue;を編集することができます働いていない場合はfirestore (firebase-admin ")。FieldValue;' does not – GrafOrlov

+0

@GrafOrlovドキュメントに 'firestore'がないので編集しました。 –

+0

はい、' require( "firebase-admin")です。 firestore.FieldValue.serverTimestamp(); 'は正しいです。 – Incinerator

関連する問題