上传文档Firebase Firestore问题

时间:2019-09-09 10:09:26

标签: typescript firebase google-cloud-firestore google-cloud-functions

我遇到了上载Firestore文档的功能异常行为。在下面的代码中,文档中更新的值是keyValue:valueValue,而不是访问存储要在Firestore文档中更新的期望字段的常量。

它引发错误:声明了'keyValue',但从未读取其值。这意味着将使用实际值“ keyValue”代替常量keyValue。

有什么建议吗?


function createObjectDocument(document: any, caseNumber: String)

{
    document.get().then(function(doc: any) {
        if (doc.exists) {
            console.log("Document data:", doc.data());
            for (let [key, value] of Object.entries(doc.data())) {
                let keyValue = key;
                let valueValue = value;
                console.log(`${key}: ${value}`);
                if (key != "CaseRefArray") {
                    db.collection("casesToExport").doc(caseNumber).update({
                            keyValue: valueValue
                        })
                        .then(() => {
                            console.log("Successfully updated document!");
                        }).catch((error: any) => {
                            console.error("Error updating document: ", error);
                        });
                }
            }
        } else {
            console.log("No such document!");
        }
    }).catch(function(error: any) {
        console.log("Error getting document:", error);
    });

}

1 个答案:

答案 0 :(得分:3)

据我了解,您正在尝试发送对象{ }并使用变量设置对象的键,而是创建一个对象,该对象的键是变量的名称,而不是变量的内容。对此的快速解决方案是将keyValue封装在数组中,然后将对象传递给.update(),例如:{ [keyValue]: valueValue },这是ES6中已添加的功能。我建议您看看MDN docs,因为对于任何JavaScript开发人员来说都有很多有价值的信息。