Javascript removeEventListener不工作,它';他不是匿名的

Javascript removeEventListener不工作,它';他不是匿名的,javascript,firebase,firebase-authentication,Javascript,Firebase,Firebase Authentication,因此,我有一个提交帖子的函数,它在onAuthStateChanged(firebase)之后被调用。我想删除它,并在用户登录时再次添加它,但它没有被删除,我没有收到任何错误 auth.onAuthStateChanged(function (user) {if (user) { // User is signed in. // creating posts posts = db.collection("posts"); const { serverTimestamp } =

因此,我有一个提交帖子的函数,它在onAuthStateChanged(firebase)之后被调用。我想删除它,并在用户登录时再次添加它,但它没有被删除,我没有收到任何错误

auth.onAuthStateChanged(function (user) {if (user) {
// User is signed in.
// creating posts
posts = db.collection("posts");
const { serverTimestamp } = firebase.firestore.FieldValue;
console.log(serverTimestamp)
const submitPost = async (event) => {
  event.preventDefault();

  let LastId = posts.doc("id");
  let id;
  LastId.get().then((doc) => {
    id = doc.data().lastPost;
    id++;
    id = id.toString();

    const post = {
      uid: user.uid,
      content: a.preview.innerHTML,
      createdAt: serverTimestamp(),
      id: Number(id),
    };
    console.log(post.uid);
    posts.doc(id).set(post).then(closeMD()); // puted this line here instead of outside "then" because i need the id
    LastId.update({ lastPost: Number(id) });
  });
};

submit.addEventListener("click", submitPost);
submit.removeEventListener("click" , submitPost)}
编辑


我发现onAuthStateChanged的
是一个
观测者,我真的不知道如何使用它,我已经阅读了firebase的文档和视频,但我仍然不知道如何使用它

我仍然不知道如何处理它,但我找到了一个解决方案 我刚刚克隆了旧按钮,并将其替换为克隆按钮,如下所示:

const submit=document.getElementById(“submitPost”);
const newSubmit=submit.cloneNode(true);
submit.parentNode.replaceChild(newSubmit,submit)
newSubmit.addEventListener(“单击”,提交邮件);

我仍然想了解这个
observal
是如何工作的

它看起来像是您在添加侦听器后立即将其删除..?是的,因为
用户
已更改,正如您所看到的,我正在函数中使用它