【问题标题】:the removeEventListener is not Working and it's not anonymousremoveEventListener 不工作,它不是匿名的
【发布时间】:2020-09-26 23:52:33
【问题描述】:

所以我有一个提交帖子的函数,它在 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)}

编辑

我发现onAuthStateChangedobserver,我并不真正了解如何使用它,我已阅读文档并观看了 firebase 的视频,但我仍然不明白如何使用它

【问题讨论】:

  • 看起来你一添加监听器就删除它..?
  • 是的,因为 user 已更改,如您所见,我在函数中使用它

标签: javascript firebase firebase-authentication


【解决方案1】:

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

    const submit = document.getElementById("submitPost");
       const newSubmit = submit.cloneNode(true);
    submit.parentNode.replaceChild(newSubmit , submit)
    newSubmit.addEventListener("click", submitPost);

我仍然想了解observal 的工作原理

【讨论】:

    猜你喜欢
    • 2011-08-15
    • 2022-12-31
    • 1970-01-01
    • 2011-06-24
    • 2019-05-25
    • 1970-01-01
    • 2018-03-24
    • 1970-01-01
    相关资源
    最近更新 更多