【发布时间】:2021-02-27 20:04:43
【问题描述】:
所以我有一个使用 Firebase Firestore 和 React 的简单 CRUD 应用程序,并且我有一堆集合。在每个集合中,我都有带有图像的图像对象。 我找不到删除或编辑这些图像的方法。 目前,我可以通过该集合获取并显示图像。
这是我的代码。我想在 .
中添加删除和编辑按钮请帮忙...
import React, { useState, useEffect } from "react";
import { useRouteMatch, Link } from "react-router-dom";
import { NewPhoto } from "./NewPhoto";
import { app } from "./base";
const db = app.firestore();
export const Album = () => {
const [images, setImages] = useState([]);
const [albumName, setAlbumName] = useState("");
const match = useRouteMatch("/:album");
const { album } = match.params;
useEffect(() => {
const unmount = db.collection("albums")
.doc(album)
.onSnapshot((doc) => {
setImages(doc.data().images || []);
setAlbumName(doc.data().name);
});
return unmount
}, []);
return (
<>
<section>
<header>
<h1>{albumName}</h1>
<p>Go to the <Link to="/">Home page</Link></p>
</header>
{images.map((image) => (
<aside key={image.name}>
<img src={image.url} alt="album" />
</aside>
))}
</section>
<footer>
<NewPhoto currentAlbum={album} />
</footer>
</>
);
};
【问题讨论】:
-
执行删除的代码/函数在哪里?
-
就是这样,我尝试了许多不同的代码,但没有一个可以工作。我最初尝试通过以下方式删除: deleteImage(id) { db.collection("album").doc(image[id]).delete() }
-
delete()返回一个Promise,所以你可能想放一个then()或catch()或await它。另外,我在您的代码中看不到任何按钮。 -
是的,因为我没有实现它,因为它不起作用。您通过给我一个示例来解释如何编写删除函数来删除 Firestore 文档的一项?
标签: javascript reactjs firebase google-cloud-firestore react-router