首页 > 解决方案 > 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()
        })
    }
}

标签: javascriptfirebasegoogle-cloud-firestorefirebase-authentication

解决方案


推荐阅读