У меня есть массив в Firestore, который структурирован так:
palettes
0: {date: 2019-05-01, name: "First Palette", palette: [array]}
1: {date: 2019-05-02, name: "Palette 2", palette: [array]
Каждый элемент в массиве palettes
является элементом палитры с датой, именем и данными палитры в массиве.
В моем приложении React я пытаюсь удалить конкретную палитру в базе данных Firestore, ссылаясь на ее значение name
и не имея никакой удачи.
Например, если у меня есть paletteName
«Палитра 2», переданная из события щелчка, как я могу удалить палитру с этой строкой в качестве значения имени?
Вот что я пробовал:
1
const deletePalette = paletteName => {
db.collection('users').doc(user.uid)
.update({
palettes: firebase.firestore.FieldValue.arrayRemove({
name: paletteName
})
})
// ...
}
2
const deletePalette = paletteName => {
db.collection('users').doc(user.uid)
.update({
palettes: firebase.firestore.FieldValue.arrayRemove(paletteName)
})
// ...
}
3.
const deletePalette = paletteName => {
const ref = db.collection('users').doc(`${user.uid}/palettes/`)
ref.update({
[paletteName]: firebase.firestore.FieldValue.delete()
})
// ...
}
4
const deletePalette = paletteName => {
db.collection('users').doc(user.uid)
.update({
palettes: palettes.filter(
palette => palette.name !== paletteName
)
})
// ...
}
Никто из них этого не делает. Что мне здесь не хватает?