javascript - Firestore 数据库重复条目
问题描述
不知道为什么,但我的“实时聊天”网站复制了 Firestore 的条目。我一直坚持这一点,希望有人能帮帮我。
如果您发现任何关于为什么会发生这种情况的问题,请帮帮我;输入消息并单击提交后,它会将其添加到数据库中两次。
document.getElementById('submit').addEventListener("click", function(){
messageInput();
})
firebase.auth().onAuthStateChanged(function(user){
if (user) {
console.log("Signed in")
displayName = user.displayName;
email = user.email;
el.innerHTML = "<b>Username:</b> " + displayName;
// document.getElementById("chat-response").style.visibility = "visible;"
} else {
// document.getElementById("chat-response").style.visibility = "hidden;"
el.innerHTML = "You are not currently signed in";
console.log("Not signed in")
}
});
// get live data
db.collection("messages").orderBy("timestamp")
.onSnapshot(function(m){
let list = [];
document.querySelector(".chat-area").innerHTML = "";
m.forEach(m => {
list.push(m.data());
});
document.querySelector(".chat-area").innerHTML = render(list)
});
function render(list) {
output = list.map(m => `<p><strong> ${m.username}: </strong> ${m.message}</p>`).join("");
return output;
}
function messageInput(){
let messageValue;
messageValue = document.querySelector("#message").value;
if(!messageValue){
return;
}
else {
db.collection("messages").add({
// username: displayName,
// emailAddress: email,
message: messageValue,
timestamp: firebase.firestore.FieldValue.serverTimestamp()
})
}
}
解决方案
推荐阅读
- ubuntu - 使用需要 sudo 权限的 VS Code ssh 工具编辑文件
- javascript - 过滤频道中所有消息的内容
- coldfusion - 如何使用coldfusion将电子邮件移动到子文件夹
- ios - MasterViewController更新时如何刷新DetailViewController
- c++ - lambda 函数使用其参数作为模板参数调用模板函数
- html - 创建自定义设计的上传文件按钮
- jquery - yearpicker 日期更改事件
- excel - Excel公式混淆
- android - 为什么 onClick() 函数是抽象的?
- html - 在 iframe 上的 Div