[英]Updating Array of Objects in Firebase Realtime Database in React js
我在 Firebase 的实时数据库中更新对象数组的某些属性时遇到问题。
我的 object 如下所示(见图)。
现在我想更新第二个参与者 object 的 IsComing 属性。
目前我使用 updateIsComming() function,但这不是很有说服力,因为我必须重写整个 object。
function updateIsComming() {
const db = getDatabase();
update(ref(db, " your_path/EventModel/" + modelkey ), {
Location: "London",
Participants: [
{ Name: "Bella2", IsComming: "true" },
{ Name: "Tom", IsComing: "true" },
],
});
相反,我只想引用该数组中的特定道具。 例如
参与者[1].IsComming = false;
有什么方法可以直接访问 object 的特定数组。
Arrays 作为数据结构不推荐在 Firebase 实时数据库中使用。 要了解原因,我建议阅读Firebase 中的最佳实践:Arrays 。
这样做的原因之一是您需要读取数组以确定要更新的项目的索引。 模式是:
正如您已经发现的那样,这并不理想。 正如 NoSQL 数据库中常见的那样,请考虑更适合用例的替代数据结构。
在这种情况下,要考虑的替代数据结构是:
Participants: {
"Bella2": true,
"Tom": true
}
在那里,我们使用参与者的名字作为键,这意味着:
update(db, "your_path/EventModel/" + modelkey + "/Participants/Tom", false)
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.