Javascript 从Firebase存储和检索数据时会以不同的格式返回
我正在尝试构建这个时间跟踪器应用程序,用户可以记录他们每天工作的小时数。为了让您了解我的应用程序的外观,我制作了一把小提琴: 棘手的部分来了。每当我尝试通过执行以下操作将数据存储到firebase中的节点时:Javascript 从Firebase存储和检索数据时会以不同的格式返回,javascript,firebase,vue.js,firebase-realtime-database,firebase-authentication,Javascript,Firebase,Vue.js,Firebase Realtime Database,Firebase Authentication,我正在尝试构建这个时间跟踪器应用程序,用户可以记录他们每天工作的小时数。为了让您了解我的应用程序的外观,我制作了一把小提琴: 棘手的部分来了。每当我尝试通过执行以下操作将数据存储到firebase中的节点时: submitHours() { var uid = firebase.auth().currentUser.uid; firebase .database() .ref("userhours/" + uid) .set(this.rows)
submitHours() {
var uid = firebase.auth().currentUser.uid;
firebase
.database()
.ref("userhours/" + uid)
.set(this.rows)
.then(data => {
console.log(data);
});
},
它将变成具有索引值的对象,如下所示:
userhours: {
userId: {
0: {
name: "username",
times: "time here"
}
}
}
截图:
使用该索引对其进行格式化使其真正易于维护。我无法有效地更新/设置/检索节点。 我可以用
loadUserHours() {
var userId = firebase.auth().currentUser.uid;
firebase.database().ref("userhours").once("value").then((data) => {
const allRows = [];
let obj = data.val();
for (let key in obj) {
allRows.push({
name: obj[key][0].name,
times: obj[key][0].times
})
}
console.log(allRows)
this.rows = allRows
})
},
只需检索值,但现在。。。如果userhours
节点中有超过1个用户,我就无法真正更新我的节点。如果我在更新user#2()的值后立即尝试使用我的submitHours()
方法,它会将新信息存储在一个新节点中,如下所示:
有谁能帮助我如何有效地为我的应用程序存储和检索数据
非常感谢“我无法有效地更新/设置/检索节点。我可以使用类似“这段代码应该做什么?在我的第二个屏幕截图()中,我以用户身份登录。”joe@gmail.com,如果我将数字添加到他所在行的任何输入字段中并点击提交,它将在uid下创建一个新节点“erik@gmail.com“从这里可以看到。如何确保Joe存储在正确的节点下?在我的第二个屏幕截图中,您将看到这一点,而不是为joe@gmail.com,一个具有erik@gmail.com是创建的,将两个用户存储在一个数组中..我只想点击submit并将登录用户的值存储在单独的节点中是的,我想实现的目标是有意义的,Frank?老实说,我发现很难理解,所以我希望其他人能发现它。事情太多了。您的数据写入错误的UID是否有问题?