是否可以将要使用Firestore更新的字段作为变量传递?
我想创建一个功能来更新文档,例如...
updateFirebaseDocument('enquiries', 'asdaasdasds, 'status', '1'))
具有以下功能
export async function updateFirebaseDocument(collectionName, documentId, field, updateValue) {
var doc = db.collection(collectionName).doc(documentId)
return doc.update({
field: updateValue
})
.then(function() {
console.log("Document successfully updated!");
})
.catch(function(error) {
// The document probably doesn't exist.
console.error("Error updating document: ", error);
});
}
这确实有效,但问题是它创建了一个名为field的字段,而不是更新status字段。有办法做到这一点,而不是对更新字段进行硬编码吗?
答案 0 :(得分:1)
您可以不使用ES6
export async function updateFirebaseDocument(collectionName, documentId, field, updateValue) {
var doc = db.collection(collectionName).doc(documentId)
var obj = {}
obj[field] = updateValue;
return doc.update(obj)
.then(function() {
console.log("Document successfully updated!");
})
.catch(function(error) {
// The document probably doesn't exist.
console.error("Error updating document: ", error);
});
}
答案 1 :(得分:0)
使用方括号为我解决了此问题。
[field]: updateValue