, когда я пытаюсь удалить узел из дочернего элемента в firebase, он вылетает из моего кода, приводя к фатальной ошибке, говорящей «индекс за пределами». Конечным результатом является удаление данных, связанных с идентификатором, из UID. я прикрепил код для ячейки, удаляющей
func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {
if (editingStyle == .delete) {
var listOfUID = [String]()
let ref = Database.database().reference().child(currentEmail!)
ref.observe(.childAdded , with: { snapshot in
if !snapshot.exists() {return}
print(snapshot.key)
let listOfUID = [snapshot.key]
let name = listOfUID[indexPath.row]
ref.queryOrdered(byChild: name ).queryEqual(toValue: name).observe(.childAdded, with: { (snapshot) in
snapshot.ref.removeValue(completionBlock: { (error, reference) in
if error != nil {
print("There has been an error:\(error)")
}
data.remove(at: indexPath.row)
tableView.deleteRows(at: [indexPath], with: .left)
})
})
})
}
}
по некоторым причинам, таким как let name = listOfUID[indexPath.row - 1]
, это тоже не исправит.
Я также считаю полезным упомянуть, что в текущем письме есть сканер, который вынимает "."
Я загрузил, как настраивается структура базы данных
{
"email@yahoocom" : {
"-LtUztWPbQias7bh5C2L" : {
"message" : "Didn’t",
"teamName" : "jah"
},
"-LtUzumEkb2kjK4qeU6E" : {
"message" : "D d",
"teamName" : "did if"
},
"-LtVCbxDu6DqxWv7LHzp" : {
"message" : "Cc’d",
"teamName" : "xdfff"
}
},
"nice@nicecom" : {
"-LtSjXIKnKXKgp-XCzdP" : {
"message" : "Test 2",
"teamName" : "test 1"
}
}
}