web-dev-qa-db-fra.com

Comment accéder à firestore.Timestamp depuis Firebase Cloud Function

Nous sommes en train de convertir notre objet Firestore Date en nouvel objet Objets d'horodatage

Nous l’avons fait avec tant de succès en important Firestore.

import { firestore } from 'firebase';

puis en remplaçant tous les types d'objet Date par firestore.Timestamp

  startDate: firestore.Timestamp;

Le problème est que je n'arrive pas à trouver un moyen d'obtenir un accès à Timestamp in node.

J'ai essayé de connecter les objets admin et functions mais je n'arrive pas à trouver Timestamp du tout

import * as functions from 'firebase-functions';
import * as admin from 'firebase-admin';
...
console.log(functions)
console.log(admin)

C’est ce que j’ai essayé et ils sont tous revenus avec 'Timestamp n’existe pas sur undefined'

import * as firebase from 'firebase';
...
firebase.firestore.Timestamp.now()

const firebase = require('firebase')   
...
firebase.firestore.Timestamp.now()

import * as admin from 'firebase-admin';
...
admin.firestore.Timestamp.now()

Voici mes dépendances package.json

"dependencies": {
    "@sendgrid/mail": "^6.2.1",
    "@types/node-fetch": "^1.6.8",
    "chai": "^4.1.2",
    "chai-as-promised": "^7.1.1",
    "cors": "^2.8.4",
    "encodeurl": "^1.0.2",
    "fetch": "^1.1.0",
    "firebase": "^4.13.0",
    "firebase-admin": "^5.12.0",
    "firebase-functions": "^1.0.1",
    "generator-karma": "^2.0.0",
    "google-distance": "^1.0.1",
    "mailgun-js": "^0.13.1",
    "moment": "^2.22.1",
    "node-fetch": "^2.1.2",
    "request": "^2.85.0",
    "sinon": "^4.0.1",
    "TypeScript": "^2.8.3"
},
"private": true,
"devDependencies": {
    "@angular/cli": "^1.7.4",
    "@types/cors": "^2.8.3",
    "@types/jasmine": "^2.6.6",
    "ts-loader": "^3.5.0",
    "webpack-node-externals": "^1.7.2"
}
5
Matthew Mullin

Avec la sortie de la version V2.0 de Firebase Functions, on dirait qu'ils ont ajouté la prise en charge de l'horodatage dans le package du SDK d'administration Firebase.

Consultez la documentation officielle ici .

import { firestore } from 'firebase-admin';
...
const now = firestore.Timestamp.now()
4
Matthew Mullin

À ce moment précis, Timestamp n'est tout simplement pas disponible dans la dernière version du module @google-cloud/firestore npm pour noeud. Vous pouvez également voir qu'il n'est pas inclus dans la Documentation d'API . Peut-être que cela sera ajouté dans la prochaine version de @google-cloud/firestore.

5
Doug Stevenson

Je suis tombé sur le même problème et j'ai donc créé un module de base pour les horodatages Firebase Firestore ici https://www.npmjs.com/package/firebase-firestore-timestamp

Port de code de base de https://www.gstatic.com/firebasejs/4.13.0/firebase-firestore.js

2
Hamiora