【发布时间】:2018-07-03 21:27:51
【问题描述】:
例如,我们有数据库:
//the database
firebase: {
1: a,
2: b,
3: c
}
//the ref
var firebaseRef = firebase.database().ref();
//what we need
var change = [
{
id: 2,
value: "y"
},
{
id: 3,
value: "z"
},
];
//a possible way how we want
firebaseRef.update({
change[0].id: change[0].value,
change[1].id: change[1].value
})
我有几个问题。
最后一个块需要遍历数组。但我不知道重复调用更新是否是一个好习惯。
第二个重要的事情是,虽然上面的键只有一个值,但这很好,但如果它是一个有几个属性的对象,我们想要设置的唯一一个将覆盖其他属性。我认为解决此问题的最佳方法是创建一个循环,将数据库的子项设置为数组的实际对象的 id 或键,然后更新必要的属性。
但是循环遍历一个数组并重复调用更新函数不是一个坏习惯吗?
【问题讨论】:
-
我在您发布的代码中看不到任何循环。您的问题/问题到底是什么。另请注意,询问最佳/不良做法可能会被视为题外话,因为它会征求意见。
-
问题就是问题。如何使用对象数组更新数据库。上面你可以看到我的想法。我想知道的是哪种方法最好。
-
这是一个完美的例子,说明为什么不在 NoSQL 数据库中使用数组。它们的使用是高度情境化的,通常有更好的方法来存储和组织数据。请参阅此较早的帖子Arrays are Evil 和此question。通常不鼓励在紧密循环中重复调用更新,但真正的问题是尝试使用 Firebase 中的数组来执行此操作。创建父/子节点来存储该数据。
标签: javascript firebase firebase-realtime-database