'Firebase realtimeDB not creating new object, but replacing the old object's content

I wanted to store each input i submit, so i used firebase realtimeDB i modified the event of submiting with the code under, but each time its not creating a new file but replacing the old one's content Any solutions?? thanks

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 });

});


Solution 1:[1]

You're creating the d value once, no matter how often the form is submitted. To get a new date for each time the form is submitted:

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 });
});

Or shorter:

const db = getDatabase();
form.addEventListener("submit", (event) => {
  event.preventDefault();
  const inp = document.getElementById("inp").value;

  set(ref(db, "newSec/" + Date.now()), { message: inp });
                       // ?
});

On Firebase I'd recommend using its built-in push operation though, which does chronological ordering - but also works reliably even when you have many users doing this at the same time:

const db = getDatabase();
form.addEventListener("submit", (event) => {
  event.preventDefault();
  const inp = document.getElementById("inp").value;

  push(ref(db, "newSec"), { message: inp });
 // ?
});

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Frank van Puffelen