我正在尝试使用firestore admin sdk和批处理写入命令为节点存储一个firestore数据库。
我设法写了一些藏书。现在,我尝试将JSON列表写入具有ID的特定文档的子集合中。子集合应称为问题-响应。
每个文档都是 questionDocId ,我引用的似乎是我的JSON对象之一,而不是其他对象。
*...initialization of App etc*
const firestore = admin.firestore();
const settings = {timestampsInSnapshots: true};
firestore.settings(settings);
if (responseData && (typeof responseData === "object")) {
Object.keys(responseData).forEach(docKey => {
return doSubCollection(docKey, firestore, responseData[docKey]);
});
}
responseData 是带有我的键->列表的json文件,因此 responseData [docKey] 返回这些列表之一,并且docKey引用了一个问题 > Firestore文档。
function doSubCollection(questionDocId, firestore, list) {
try {
const batch = firestore.batch();
const docRef = firestore.collection("questions").doc(questionDocId).collection("question-responses").doc();
list.forEach((responseDoc) => {
batch.set(docRef, responseDoc);
});
batch.commit().then(() => {
console.log('batch success', questionDocId);
});
} catch (err) {
console.error(err);
}
}
流程应进入问题收集-> 问题文档-> 问题-响应收集
我不清楚如何创建问题文档的新集合并将其作为对象列表的种子。
成功日志显示它已提交并确实创建了一个问题-响应集合,但是它仅填充我的一个对象,是其中的一个随机对象。有任何想法吗?完全不属于firebase btw。