gpt4 book ai didi

javascript - 火存储 : Dynamically Update Document (web)

转载 作者:行者123 更新时间:2023-12-01 00:19:32 26 4
gpt4 key购买 nike

摘自 Google Firebase 网站的官方指南文档,假设我要更新文档。

var washingtonRef = db.collection("cities").doc("DC");

// Set the "capital" field of the city 'DC'
return washingtonRef.update({
capital: true
})
.then(function() {
console.log("Document successfully updated!");
})
.catch(function(error) {
// The document probably doesn't exist.
console.error("Error updating document: ", error);
});

正如您所注意到的,我可以将变量放在集合括号、文档括号和值中,我想分配给我的字段。但是,我不能使用变量作为字段名称。如果我写这样的东西

var collection = "people";
var document = "john";
var value = 5;
var field = "result";

var docRef= db.collection(collection).doc(document);

return docRef.update({
field: value
})
.then(function() {
console.log("Document successfully updated!");
})
.catch(function(error) {
// The document probably doesn't exist.
console.error("Error updating document: ", error);
});

,除了字段变量之外,它都可以工作。在firestore数据库中,它将更新“people”集合中“john”文档中的字段名为“field”(或者更像是创建一个新字段),编号为5。我正在尝试要实现的目标是在“people”集合中拥有一个“john”文档,其中包含一个名为“result”的字段,其值为数字 5。

我想要一个函数,它接受所有 4 个变量并更新某个集合中某个文档中的某个字段。这可能吗?有人知道解决这个问题的方法吗?

谢谢大家的回答。

最佳答案

您应该使用square brackets notation ,如下:

var collection = "people";
var document = "john";
var value = 5;
var fieldName = "result";

var obj = {};
obj[fieldName] = value;

var docRef= db.collection(collection).doc(document);

return docRef.update(obj)
.then(function() {
console.log("Document successfully updated!");
})
.catch(function(error) {
// The document probably doesn't exist.
console.error("Error updating document: ", error);
});

关于javascript - 火存储 : Dynamically Update Document (web),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59530612/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com