Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从Firebase存储和检索数据时会以不同的格式返回_Javascript_Firebase_Vue.js_Firebase Realtime Database_Firebase Authentication - Fatal编程技术网

Javascript 从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)

我正在尝试构建这个时间跟踪器应用程序,用户可以记录他们每天工作的小时数。为了让您了解我的应用程序的外观,我制作了一把小提琴:

棘手的部分来了。每当我尝试通过执行以下操作将数据存储到firebase中的节点时:

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是否有问题?