【发布时间】:2020-06-08 18:13:28
【问题描述】:
我创建了一个小型 react 应用程序,您可以输入书名和作者姓名,它会在表单下方显示列表,它也存储在 firebase 数据库中。如果你想删除它,你可以在前端删除它,但是我在我的 firebase 数据库中删除它时遇到了麻烦,因为我不确定如何动态引用 doc id。如果我在代码中提供 id,它可以删除这个特定的 id,但用户不能在前端提供 id。希望有人帮助我,谢谢!
import React, {useContext} from 'react'
import {BookContext} from '../contexts/BookContext'
import firebase from '../config/fbConfig'
const BookDetails = ({bookProp}) => {
const {actionDispatch} = useContext(BookContext)
const handleOnClick = () => {
actionDispatch({type: "REMOVE_BOOK", id: bookProp.id})
firebase.firestore().collection('books').doc(id).delete()
.then(()=>{console.log("successfully deleted! ")})
.catch((error)=>{ console.log("Error removing document:", error)})
}
return(
<div>
{
<li onClick={handleOnClick}>
<div className="title">{bookProp.title}</div>
<div className="author">{bookProp.author}</div>
</li>
}
</div>
)
}
export default BookDetails
【问题讨论】:
-
在不知道 ID 的情况下,您无法删除文档。您需要确保您的代码可以使用任何 ID。
-
您能否建议我应该如何在我的反应代码中引用正确的 firebase doc id?
-
当您查询文档时,您会得到一个对象,该对象具有一个
data()属性来保存您的查询数据和一个id属性,它为您提供了 firebase 为该文档分配的 uid。如果您发布查询以获取文档,我将能够向您展示如何获取 uid。
标签: javascript reactjs firebase google-cloud-firestore