更新 Firestore 中对象中的字段?

Posted

技术标签:

【中文标题】更新 Firestore 中对象中的字段?【英文标题】:Update a field in an object in Firestore? 【发布时间】:2018-06-11 07:33:55 【问题描述】:

这是文档中提供的示例,用于更新 firebase 中嵌套对象中的字段。

var frankDocRef = db.collection("users").doc("frank");
frankDocRef.set(
name: "Frank",
favorites:  food: "Pizza", color: "Blue", subject: "recess" ,
age: 12
);

// To update age and favorite color:
db.collection("users").doc("frank").update(
"age": 13,
"favorites.color": "Red"
)
.then(function() 
console.log("Document successfully updated!");
);

我不想更新收藏夹,而是想添加到收藏夹中,如果有人指出我如何做到这一点的正确方向。

假设我想

firebase: "Help"
the the resulting favourites object should be
favorites:  food: "Pizza", color: "Blue", subject: "recess", firebase: "Help" ,

我在点操作中使用了 set,但它会覆盖所有内容。

【问题讨论】:

【参考方案1】:

要向集合(javascript 对象)添加条目,请使用DocumentReference.update

db.collection("users").doc("frank").update(
  "favorites.firebase": "Help")
)

会导致

favorites:  food: "Pizza", color: "Blue", subject: "recess", firebase: "Help" 

【讨论】:

无论如何我们可以动态地做到这一点?说 favorites.someUid? 您可以使用模板字符串。 const update = ;。然后像这样设置更新字段update[`favorites.$someUid`] = 'abc';并更新集合db.collection("users").doc("frank").update(update)

以上是关于更新 Firestore 中对象中的字段?的主要内容,如果未能解决你的问题,请参考以下文章

更新firestore文档中嵌套对象中的字段?

Firestore 更新数组字段中的单个项目

除非我先刷新,否则 React 应用程序中的 Firestore 文档字段更新会给出 TypeError

更新 Firestore 数据库中文档的字段

Firestore - 删除对象内的字段

如何使用flutter更新firestore中所有文档的单个字段?