Сейчас у меня при нажатии удаляется и сразу же добавляется новый id в бд, как реализовать правильно ?
Вот сам handler:
const handleFavourite = async () => {
setIsFavourite(!isFavourite)
const snapshot = await get(child(ref(db), `user/${userAuth.uid}/favourite`))
if (!snapshot.exists()) {
addFavourite()
} else {
snapshot.forEach((item) => {
if (item.val().id !== id) {
addFavourite()
} else {
removeFavourite(item.key)
}
})
}
}
Это функция добавления:
const addFavourite = () => {
const postListRef = ref(db, `user/${userAuth.uid}/favourite`)
const newPostRef = push(postListRef)
set(newPostRef, {
id,
})
}
И удаления:
const removeFavourite = async (key) => {
await remove(ref(db, `user/${userAuth.uid}/favourite/${key}`))
}