将json数组导入Firebase和Firestore时出错

将json数组导入Firebase和Firestore时出错,firebase,google-cloud-firestore,Firebase,Google Cloud Firestore,我使用这段代码将json数组导出到CloudFireStore const admin = require("firebase-admin"); const serviceAccount = require("./service-key.json"); const data = require("./state.json"); admin.initializeApp({ credential: admin.credential.cert(serviceAccount), data

我使用这段代码将json数组导出到CloudFireStore

const admin = require("firebase-admin");
const serviceAccount = require("./service-key.json");
const data = require("./state.json");
admin.initializeApp({
    credential: admin.credential.cert(serviceAccount),
    databaseURL: "https://functionstest-54bd9.firebaseio.com"
});
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);
            });
        });
    }
});
但当我运行这个时,我得到了错误

Error: Argument "data" is not a valid Document. Input is not a plain JavaScript object.
    at Object.exports.(anonymous function) [as isDocument] (/home/me/Documents/TfmFirebase/functions/node_modules/@google-cloud/firestore/src/validate.js:86:15)
    at WriteBatch.set (/home/me/Documents/TfmFirebase/functions/node_modules/@google-cloud/firestore/src/write-batch.js:264:14)
    at DocumentReference.set (/home/me/Documents/TfmFirebase/functions/node_modules/@google-cloud/firestore/src/reference.js:425:8)
    at Object.keys.forEach.docTitle (/home/me/Documents/TfmFirebase/functions/lib/migrate.js:17:18)
    at Array.forEach (<anonymous>)
    at Object.keys.forEach.key (/home/me/Documents/TfmFirebase/functions/lib/migrate.js:13:36)
    at Array.forEach (<anonymous>)
    at Object.<anonymous> (/home/me/Documents/TfmFirebase/functions/lib/migrate.js:10:27)
    at Module._compile (module.js:660:30)
    at Object.Module._extensions..js (module.js:671:10)
编辑

我的输入是一个json数组,错误很明显,然后我像这样更改了json文件

{"countries":[
    {
        "countryId" : 1,
        "countryName" : "Any",
        "phoneCode" : null,
        "sortName" : null
    },
    {
        "countryId" : 2,
        "countryName" : "India",
        "phoneCode" : null,
        "sortName" : null
    }
]
}
当我再次尝试时,我在控制台中得到了这个

Error writing document:  { Error: Missing or insufficient permissions.
    at /home/me/Documents/TfmFirebase/functions/node_modules/grpc/src/client.js:554:15 code: 7, metadata: Metadata { _internal_repr: {} } }
Error writing document:  { Error: Missing or insufficient permissions.
    at /home/me/Documents/TfmFirebase/functions/node_modules/grpc/src/client.js:554:15 code: 7, metadata: Metadata { _internal_repr: {} } }

我已经添加了一个服务帐户,并在脚本中添加了json。这有什么不对?

我在创建服务帐户时忘记设置角色,删除了旧的服务帐户,使用编辑器角色创建了新的服务帐户,并在脚本中添加了新的json。现在它工作了

您编辑的最后一个json为我服务,谢谢。
Error writing document:  { Error: Missing or insufficient permissions.
    at /home/me/Documents/TfmFirebase/functions/node_modules/grpc/src/client.js:554:15 code: 7, metadata: Metadata { _internal_repr: {} } }
Error writing document:  { Error: Missing or insufficient permissions.
    at /home/me/Documents/TfmFirebase/functions/node_modules/grpc/src/client.js:554:15 code: 7, metadata: Metadata { _internal_repr: {} } }