Estoy tratando de ingresar información de entrenamiento en una base de datos en tiempo real de Firebase desde una aplicación web vue js. Sin embargo, sobrescribe los datos cuando intento insertarlos. Si ingreso información para flexiones de bíceps y luego ingreso nuevamente flexiones de bíceps en lugar de agregarlo, se sobrescribe el original. Por ejemplo, quiero que se configure así:
usuarios
Esta es mi forma de insertar datos:
writeUserData: function() { const db = getDatabase(); var data = { 'weight': this.weight, 'reps': this.reps, 'sets': this.sets, 'date': Date(), } userRef = ref(db, 'users/', this.name, this.workoutType); set(userRef, [data]); },Cada vez que llamas a set con una referencia, reemplaza cualquier dato existente en esa ref .
Si desea crear nuevos nodos secundarios únicos debajo de la referencia, use push en lugar de set .
push(userRef, data)Consulte también la documentación de Firebase sobre cómo agregar a una lista de datos .
El uso de una notación de matriz como la que está intentando no funcionará a menos que primero lea los datos existentes de la ubicación. Sin embargo, tratar de hacer esto es un antipatrón en Firebase, por lo que también recomiendo leer Mejores prácticas: arreglos en Firebase .