Quería almacenar cada entrada que envié, así que usé firebase realtimeDB. Modifiqué el evento de envío con el código a continuación, pero cada vez no se crea un nuevo archivo sino que se reemplaza el contenido del anterior. ¿Alguna solución? Gracias
const db = getDatabase(); let d = new Date(); form.addEventListener("submit", (event) => { event.preventDefault(); let inp = document.getElementById("inp").value; set(ref(db, "newSec/" + d.getTime()), { message: inp }); });Está creando el valor d una vez, sin importar la frecuencia con la que se envíe el formulario. Para obtener una nueva fecha cada vez que se envía el formulario:
const db = getDatabase(); form.addEventListener("submit", (event) => { event.preventDefault(); const d = new Date(); // 👈 const inp = document.getElementById("inp").value; set(ref(db, "newSec/" + d.getTime()), { message: inp }); });O más corto:
const db = getDatabase(); form.addEventListener("submit", (event) => { event.preventDefault(); const inp = document.getElementById("inp").value; set(ref(db, "newSec/" + Date.now()), { message: inp }); // 👆 }); Sin embargo, en Firebase, recomendaría usar su operación de push incorporada, que hace un orden cronológico, pero también funciona de manera confiable incluso cuando tiene muchos usuarios haciendo esto al mismo tiempo:
const db = getDatabase(); form.addEventListener("submit", (event) => { event.preventDefault(); const inp = document.getElementById("inp").value; push(ref(db, "newSec"), { message: inp }); // 👆 });