Я создал коллекцию под названием «монеты». Эти монеты, такие как биткойны, добавляются в базу данных, если пользователь нажимает кнопку «Follow», которая появляется рядом с каждой монетой, отображаемой на моем сайте. Проблема в том, что если пользователь нажимает кнопку «Follow» более одного раза, эта монета будет добавляться в базу данных каждый раз, когда пользователь нажимает на нее. Что я хочу сделать, если эта конкретная монета уже находится в базе данных, не устанавливать (). Я уверен, что есть способ для этого, но я не уверен. Все данные, которые я установил (), поступают из объекта, называемого данными, который содержит все данные для монеты.
const FollowIcon = ({ price }) => {
const db = firebase.firestore();
const [title, setTitle] = useState("Follow");
const [following, setFollowing] = useState(false);
это вершина моего функционального компонента. {price} содержит уникальные данные монет. Уникальность этого заключается в том, что я сделал URL-адрес динамическим, поэтому, если пользователь посещает биткойны, URL-адрес будет PriceDetails / BTC
const handleClick = () => {
let data = {
following: following,
logo_url: price.logo_url,
id: price.id,
name: price.name,
price: price.price,
userId: firebase.auth().currentUser.uid
};
//adding the data above to firebase's real time database
db.collection("coins")
.doc()
.set(data);
setTitle("Following");
setFollowing(!following);
};
. Функция handleClick - это то, что я передаю в Onclick на моем followButton * 1007. *
Я ожидаю, что если пользователь несколько раз нажмет кнопку «Follow», эта монета будет добавлена только один раз.