尝试删除Firebase参考时出现问题

时间:2018-10-28 20:07:05

标签: swift firebase firebase-realtime-database delete-row

在尝试删除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语法感到困惑...有人可以帮助我吗?数据库是这样的: enter image description here

我确定有人可以帮助

1 个答案:

答案 0 :(得分:0)

您只需要删除相关对象,而不必总是在此处索引0

self.meds.remove(at: 0)

因此将其替换为

self.meds = self.meds.filter{ $0 != medication  }

并采用Equatable协议