Firestore Dateオブジェクトを新しい Timestamp Objects に変換しています。
ファイアストアをインポートすることにより、フロントエンドで成功しました
import { firestore } from 'firebase';
次に、すべてのDateオブジェクトタイプをfirestore.Timestampに置き換えます。
startDate: firestore.Timestamp;
問題は、ノードのタイムスタンプにアクセスする方法を見つけることができないようです。
私は管理オブジェクトと関数オブジェクトの両方をログに記録しようとしましたが、タイムスタンプをまったく見つけることができません
import * as functions from 'firebase-functions';
import * as admin from 'firebase-admin';
...
console.log(functions)
console.log(admin)
これらは私が試したものであり、すべて「タイムスタンプは未定義には存在しません」で返されました
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()
ここに私の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"
}
Firebase FunctionsのV2.0のリリースでは、Firebase Admin SDKパッケージにTimestampサポートが追加されたようです。
公式ドキュメント here をご覧ください。
import { firestore } from 'firebase-admin';
...
const now = firestore.Timestamp.now()
現時点では、ノードの@google-cloud/firestore
npmモジュールの最新バージョンではTimestampを使用できません。 API docs に含まれていないこともわかります。おそらく、それは@google-cloud/firestore
の次のリリースで追加される予定です。
私は同じ問題に遭遇したので、Firebase Firestoreタイムスタンプの基本的なノードモジュールをここに作成しました https://www.npmjs.com/package/firebase-firestore-timestamp
https://www.gstatic.com/firebasejs/4.13.0/firebase-firestore.js からの基本的なコードポート
クラウド関数内で必要なため、snapパラメーターを介してタイムスタンプを運ぶトリガー(onCreate、onUpdate ...など)を操作しています。以下のように使用できます。 (私と一緒に働いた)
exports.newUserCreated = functions.firestore.document('users/{userId}').onCreate(async (snap, context) => {
firestore.collection(`users/${userID}/lists`).add({
'created_time': snap.updateTime,
'name':'new list name',
}).then(documentReference => {
console.log("list created");
return null;
}).catch(error => {
console.error('Error creating list', error);
process.exit(1);
});
});