使用 Firebase Cloud 在 React 中删除数据

IT技术 reactjs firebase google-cloud-firestore
2021-04-29 09:04:27

我是 React 新手,今天,我使用 React 和 Firebase 来显示、添加和删除数据。我有一些数据获取 Firebase 并显示在卡片中。现在,我想删除一些想要的卡片,但我不知道。你能告诉我怎么做吗?也许在右上角创建“X”按钮,单击时将其删除。

在此处输入图片说明

这是代码调用列表

const ProjectList = ({projects}) => {
  return (
    <div className="project-list section">
      { projects && projects.map(project => {
        return (
          <Link to={'/project/' + project.id} key={project.id}>
            <ProjectSummary project={project} />
          </Link>
        )
      })}  
    </div>
  )
}

这是项目总结

const ProjectSummary = ({project}) => {
  return (
    <div className="card z-depth-0 project-summary">
      <div className="card-content grey-text text-darken-3">
        <span className="card-title ">{project.title}</span>
        <p>Created by {project.authorFirstName} {project.authorLastName} admin</p>
        <p className="grey-text">{moment(project.createdAt.toDate()).calendar()}</p>
      </div>
    </div>
  )
}

并在 Firebase 中结构化数据

在此处输入图片说明

2个回答

您可以像这样在 ProjectSummary 列表项中添加一个删除按钮

<button onClick={() => this.removeProject(project.id)}>Delete</button>

Id 将是像这样 ahakhka734hfakh3 的 firebase 唯一键

然后在回调中我们可以调用 firebase.database() 的 remove 方法,它像这样从页面中剥离它。

removeProject(projectId) {
  const projectRef= firebase.database().ref(`/projects/${projectId}`);
  projectRef.remove();
}

它应该是这样的:

<button onClick={() => this.removeProject(project.id)}>Delete</button>

   removeProject(id) {
     firebase.delete({ collection: 'project', doc:`${id}` }).then((response) => {
        console.log('delete response', response)
     }).catch((error) => {
       console.log('delete error', error)
    })
  }