【发布时间】:2019-10-03 07:08:43
【问题描述】:
我在 Firestore 中有一个结构如下的数组:
palettes
0: {date: 2019-05-01, name: "First Palette", palette: [array]}
1: {date: 2019-05-02, name: "Palette 2", palette: [array]
palettes 数组中的每一项都是一个调色板项,其中包含日期、名称和调色板数据。
在我的 React 应用程序中,我试图通过引用其 name 值来删除 Firestore 数据库中的特定调色板,但没有任何运气。
例如,如果我从点击事件中传入了paletteName“Palette 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
)
})
// ...
}
这些都没有这样做。我在这里想念什么?
【问题讨论】:
标签: javascript arrays reactjs firebase google-cloud-firestore