当前有一个UITableView,其中有一个编辑和删除按钮。现在,我试图弄清楚如何从数据库中删除地图/字典中的元素。例如,我要删除:
dailyIntake {。
1568695516 {
金额:12。
时间戳:1568695516.837234
}
这是我的数据库的图像: Firestore Image
这是我在Swift中的代码:{
@objc func handleDeleteTap() {
print("Delete Button Tapped!")
let deleteOption = UIAlertAction(title: "Delete", style: .destructive) { (action) in
do {
// handle delete logic in the backend and update tableview
collectionReference(to: .intake).document(userUID).updateData([
"dailyIntake" : FieldValue.arrayRemove()
])
} catch let err {
print("Failed to Sign Out with Error:", err)
CustomAlert.showAlert(on: self, style: .alert, title: "Deletion Error", message: err.localizedDescription)
}
}
let cancelOption = UIAlertAction(title: "Cancel", style: .cancel, handler: nil)
CustomAlert.showAlert(on: self, style: .alert, title: "Delete current log?", message: nil, actions: [deleteOption, cancelOption], completion: nil)
}
感谢您的宝贵时间!请帮忙!哈哈
答案 0 :(得分:0)
尝试通过交易更新字段
首先阅读字典字段,删除字典中的元素,然后更新该字段。
这里的文档应该会有所帮助:https://firebase.google.com/docs/firestore/manage-data/transactions
答案 1 :(得分:0)
您可以通过将元素传递给arrayRemove()来做到这一点
FieldValue.arrayRemove(element)
答案 2 :(得分:0)
所以我想出了如何删除Firestore(Cloud-DataBase)中的dailyIntake映射内的某个值。
@objc func handleDeleteTap() {
print("Delete Button Tapped!")
let deleteOption = UIAlertAction(title: "Delete", style: .destructive) { (action) in
do {
// handle delete logic in the backend and update tableview
collectionReference(to: .intake).document(userUID).updateData([
"dailyIntake.1568695516" : FieldValue.arrayRemove()
])
} catch let err {
print("Failed to Sign Out with Error:", err)
CustomAlert.showAlert(on: self, style: .alert, title: "Deletion Error", message: err.localizedDescription)
}
}
let cancelOption = UIAlertAction(title: "Cancel", style: .cancel, handler: nil)
CustomAlert.showAlert(on: self, style: .alert, title: "Delete current log?", message: nil, actions: [deleteOption, cancelOption], completion: nil)
}
带有“。”键旁边的符号,它实际上会删除地图中的某个值。