【发布时间】:2019-04-01 19:15:06
【问题描述】:
我在尝试删除 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 语法感到困惑...有人可以帮帮我吗?数据库是这样的:
我相信有人可以提供帮助
【问题讨论】:
-
我建议更改您的 firebase 设置并使用 drug_name 作为键而不是随机生成的,然后每当您需要删除 x drug_name 时,您只需引用该键并删除它包含的值
-
这可能会有所帮助...我会在这里尝试更新
-
我使用的是tableView,会有很多不同名称的单元格......但是用户会向左滑动并删除那个特定的单元格。如何创建删除所选行的 indexPath.row 的函数?
-
嗯来自 Android 我可能会得到将被删除的行的名称(我假设用户可以看到药物的名称然后删除) - 当这种情况发生时我会通过将名称添加到 Firebase 参考中 child("User_Medications").child("medication_name").removeValue();不知道swift中的语法是否相同:) --> Firebase是一个键值数据库,所以每当你删除一个键时,这个键下的所有值都会被删除
标签: swift firebase firebase-realtime-database delete-row