首页 > 解决方案 > 删除后数据重复(Firebase)

问题描述

每次当我尝试删除帖子(firebase 实时数据库)时,我也会收到重复的帖子 - 只是在旧帖子之后添加没有以前删除的帖子的新帖子。我只是无法弄清楚为什么以及如何解决这个问题。你有什么主意吗?

这是我从 Firebase 实时数据库 (componentDidMount) 发布的代码:

const postsRef = firebase.database().ref("posts");
    const posts = [];
    postsRef.on("value", snapshot => {
      const originalPosts = snapshot.val();
      for (let post in originalPosts) {
        posts.push({
          id: post,
          tags: originalPosts[post].tags,
          title: originalPosts[post].title,
          source: originalPosts[post].source,
          category: originalPosts[post].category,
          publishDate: originalPosts[post].publishDate,
          author: originalPosts[post].author
        });
      }
      this.setState({
        posts
      });
    });

这是我的帖子删除代码:

handleDeletePost = id => {
    const postRef = firebase.database().ref(`/posts/${id}`);
    postRef.remove();
  };

标签: javascriptreactjsfirebasefirebase-realtime-database

解决方案


问题解决了。

React 状态存储和输出重复值

您在 db 更改处理程序之外定义了 const quests = [] 。这意味着在第二次更改时,您会将快照中的所有内容推送到可能已经添加了先前快照的相同任务数组。

非常感谢 Ryan Cogswell


推荐阅读