无法使用Firestore管理员SDK将JSON列表项作为批处理子集合写入

时间:2019-09-17 10:38:27

标签: javascript node.js google-cloud-firestore

我正在尝试使用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。

0 个答案:

没有答案