我正在使用谷歌脚本中的FirestoreApp来访问我的Firestore数据库。在数据库中,我有一个包含数组的文档,我希望将其打印为表。
下面是我的代码:
var allDocuments = firestore.getDocuments("finished/AUG1/2021-3").map(function(doc) {
return doc.fields;
});
const first = allDocuments[0];
const colum = Object.keys(first);
const sheet = SpreadsheetApp.getActiveSheet();
sheet.appendRow(colum);
allDocuments.forEach(function(doc) {
const row = colum.map(function(clm) {
//return doc[clm].toString(); //if documents has array use toString();
return JSON.stringify(doc[clm], null, 4);
})
sheet.appendRow(row);
})
}我得到的回报如下:
"{
""arrayValue"": {
""values"": [
{
""stringValue"": ""64MR6""
},
{
""stringValue"": ""64MR6""
},
{
""stringValue"": ""64MR6""
}
]
}
}"我想打印出所有的"64MR6“下面或相邻的,但不知何故,我似乎不能得到它的权利。知道我做错了什么吗?
谢谢!
发布于 2021-03-05 21:37:12
嗯,我们开始吧:
在需要遍历对象的对象的json对象的情况下,易于修改逻辑.....
var firestore = FirestoreApp.getFirestore (email, key, projectId);
var allDocuments = firestore.getDocuments("finished/AUG1/2021-3").map(function(doc) {
return doc.fields;
});
const first = allDocuments[0];
const colum = Object.keys(first);
const sheet = SpreadsheetApp.getActiveSheet();
sheet.appendRow(colum);
allDocuments.forEach(function(doc) {
const row = colum.map(function(clm) {
//return doc[clm].toString(); //if documents has array use toString();
//return JSON.stringify(doc[clm], null, 4);
//console.log(console.log(doc[clm]["arrayValue"]["values"][1]).toString());
for (i=0;i<doc[clm]["arrayValue"]["values"].length;i++)
{
for (const [key, value] of Object.entries(doc[clm]["arrayValue"]["values"][i])) {
//console.log(`${key}: ${value}`);
console.log(`${value}`);
}
}
})
sheet.appendRow(row);
})
}https://stackoverflow.com/questions/66493445
复制相似问题