javascript - 删除后数据重复(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();
};
解决方案
问题解决了。
您在 db 更改处理程序之外定义了 const quests = [] 。这意味着在第二次更改时,您会将快照中的所有内容推送到可能已经添加了先前快照的相同任务数组。
非常感谢 Ryan Cogswell
推荐阅读
- c# - Linux Docker 容器中的退出代码 131
- linux - 无法在 Fedora 上启动机器人 Karel
- python - 如何修改适用于 RGB 图像的函数以使其适用于单色图像?
- azure - 如何从通过代理连接到服务器的逻辑应用程序进行 http 调用
- ssh-tunnel - 通过 rsa 的 ssh 连接 nornir_napalm
- python - 启动内核时发生错误,我不知道如何修复它
- python - 将文件创建日期更改为 TIFF
- javascript - 如何获取每个表单javascript的值?
- c++ - 拦截系统调用的内核模块会导致用户空间程序的执行出现问题
- python - 合并 2 个 csv 文件 pandas 时如何解决 Empty DataFrame