【发布时间】:2020-10-08 03:08:07
【问题描述】:
我创建了一个反应应用程序,其中列出了书名和作者姓名。数据存储在 firebase firestore 数据库中,并与前端的应用程序同步。我遇到的问题是从集合中删除单个文档。我可以访问该 ID,但无法挑出要删除的特定 ID。我将代码放在下面,希望有人可以帮助我展示我应该如何删除单个文档,此时它会删除所有文档。谢谢!
import React, {useState, useEffect} from 'react'
import firebase from '../config/fbConfig'
const useBooks = () => {
const [books, setBooks] = useState([])
useEffect(() => {
firebase.firestore().collection('books').onSnapshot((snapshot) => {
const newBooks = snapshot.docs.map(doc => ({
id: doc.id,
...doc.data()
}))
setBooks(newBooks)
})
},[])
return books
}
const handleOnClick = () => {
const db = firebase.firestore()
db.collection('books').get().then(snapshot => {
snapshot.docs.forEach(doc => {
const id = doc.id
db.collection('books').doc(id).delete()
console.log("Jampa thinlay Book ID:", id)
})
})
}
const BookList = () => {
const books = useBooks()
console.log('jt books', books)
return(
<div className="book_list">
<ul>
{
books.map(book =>
<li key={book.id} onClick={()=> handleOnClick()} >
<div className="title">id:{book.id}</div>
<div className="cross" > X </div>
<div className="title">book:{book.title.title}</div>
<div className="author">author: {book.author.author}</div>
</li>
)
}
</ul>
</div>
)
}
export default BookList
【问题讨论】:
标签: reactjs firebase google-cloud-firestore