web-dev-qa-db-ja.com

NodeJのfirebase-adminでtimestampsInSnapshots設定を設定する方法は?

Firestoreのタイムスタンプ動作の今後の変更に関する警告のため、アプリの初期化コードを変更しようとしています。

Firestoreに保存されているDateオブジェクトの動作が変更され、アプリが壊れる可能性があります。この警告を非表示にしてアプリが破損しないようにするには、他のCloud Firestoreメソッドを呼び出す前に、アプリに次のコードを追加する必要があります。

const firestore = firebase.firestore(); const settings = {/ your settings .../timestampsInSnapshots:true}; firestore.settings(settings);

この変更により、Cloud Firestoreに保存されたタイムスタンプは、システムのDateオブジェクトとしてではなく、Firebase Timestampオブジェクトとして読み返されます。

ただし、Firestoreの「設定」への参照は見つかりません。このようなものは機能しますか? TypeScriptの定義では、no ...

import * as admin from "firebase-admin";

export const adminApp = admin.initializeApp();

const firestore = admin.firestore(adminApp);
firestore.settings({ timestampsInSnapshots: true });
21

Firebase-adminを5.13.0にアップグレードし、initializeApp()の後にindex.jsに次のnode.jsコードを追加すると、その警告はなくなり、コードはその後正しく実行されます。

admin.initializeApp();
const settings = {/* your settings... */ timestampsInSnapshots: true};
admin.firestore().settings(settings);
33
T. Eric Hong