将json数组导入Firebase和Firestore时出错
我使用这段代码将json数组导出到CloudFireStore将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
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: {} } }