Проблемы при попытке удалить ссылку на firebase - PullRequest
0 голосов
/ 28 октября 2018

У меня возникают некоторые проблемы при попытке удалить одну из строк 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 голосов
/ 28 октября 2018

Вам нужно только удалить соответствующий объект, не всегда индекс 0 здесь

self.meds.remove(at: 0)

Так что замените его на

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

и примите протокол Equatable

...