nodejs Firestore突然中断:Date对象

mrb*_*den 1 node.js firebase google-cloud-firestore

我有一个简单的节点脚本,可以运行以更新Firestore数据库中的数据。我几个小时前用过,效果很好。吃了晚饭,回来了,现在当我运行它时出现了这个错误:

node ./json-to-firestore.js 
Run Code Online (Sandbox Code Playgroud)

Firestore中存储的Date对象的行为将更改,并且您的应用可能会崩溃。要隐藏此警告并确保您的应用程序不会中断,您需要在调用任何其他Cloud Firestore方法之前向您的应用程序添加以下代码:

const firestore = new Firestore(); const settings = {/ *您的设置... * / timestampsInSnapshots:true};
firestore.settings(settings);

错误中提供的示例不适用于我的情况。我一直在寻求有关此问题的帮助,但所有帖子似乎都是针对特定角度的。这就是我要做的所有事情:

var admin = require("firebase-admin");

var serviceAccount = require("./service-key.json");

const data = require("./occ-firestore.json");

admin.initializeApp({
  credential: admin.credential.cert(serviceAccount),
  databaseURL: "xxxxxxxxxxx"
});

data && Object.keys(data).forEach(key => {
    const nestedContent = data[key];

    if (typeof nestedContent === "object") {
        Object.keys(nestedContent).forEach(docTitle => {
            admin.firestore()
                .collection(key)
                .doc(docTitle)
                .set(nestedContent[docTitle])
                .then((res) => {
                    console.log("Document successfully written!");
                })
                .catch((error) => {
                    console.error("Error writing document: ", error);
                });
        });
    }
});
Run Code Online (Sandbox Code Playgroud)

我通过运行执行此脚本:

node ./json-to-firestore.js
Run Code Online (Sandbox Code Playgroud)

我正在运行NodeJS 8.11.3。

我检查了Google的文档,但没有提及这种新行为。

有人可以给我一个建议吗?提前致谢!

Jas*_*ark 5

可以这样修复:

const admin = require('firebase-admin');
const functions = require('firebase-functions');

admin.initializeApp(functions.config().firebase);

const db = admin.firestore();
db.settings({ timestampsInSnapshots: true });
Run Code Online (Sandbox Code Playgroud)