Firebase 实时数据库不会创建新对象,而是替换旧对象的内容



我想存储我提交的每个输入,所以我使用了firebase realtimeDB我将提交事件修改为代码如下,但每次它不是创建一个新文件,而是替换旧文件的内容任何解决方案? ?由于

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

无论表单多久提交一次,都只创建一次d值。要获取每次提交表单时的新日期:

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

或短:

const db = getDatabase();
form.addEventListener("submit", (event) => {
event.preventDefault();
const inp = document.getElementById("inp").value;
set(ref(db, "newSec/" + Date.now()), { message: inp });
// 👆
});

在Firebase上,我建议使用其内置的push操作,尽管它按时间顺序排序-但即使您有许多用户同时这样做,也可以可靠地工作:

const db = getDatabase();
form.addEventListener("submit", (event) => {
event.preventDefault();
const inp = document.getElementById("inp").value;
push(ref(db, "newSec"), { message: inp });
// 👆
});

最新更新