在尝试删除tableView行之一时遇到一些问题-就我而言,我试图从Firebase删除数据,然后重新加载表视图。 请参见下面的功能:
func deleteMeds() {
Database.database().reference().child("Meds_Database").child("UsersID").child((Auth.auth().currentUser?.uid)!).child("User_Medications").observe(DataEventType.childRemoved, with: { (snapshot) in
if let dictionary = snapshot.value as? [String: AnyObject] {
let medication = Meds()
medication.medName = (dictionary["Medication_Name"]) as! String
medication.medDosage = (dictionary["Medication_Dosage"]) as! String
medication.medEdit = (dictionary["Medication_Frequency"]) as! String
medication.medAlarm = (dictionary["Medication_Reminder"]) as! String
self.meds.remove(at: 0)
DispatchQueue.main.async(execute: {
self.tableView.reloadData()
})
}
print(snapshot)
}, withCancel: nil)
}
我认为我对Firebase语法感到困惑...有人可以帮助我吗?数据库是这样的:
我确定有人可以帮助
答案 0 :(得分:0)
您只需要删除相关对象,而不必总是在此处索引0
self.meds.remove(at: 0)
因此将其替换为
self.meds = self.meds.filter{ $0 != medication }
并采用Equatable协议