Я не могу понять, как определить, какой дочерний элемент из моей базы данных Firebase выбирается в табличном представлении, а затем обновить информацию по этому выбранному дочернему элементу в базе данных.
Я обнаружил функцию наблюдения, которая правильно отображает все childByAutoID для каждой строки, но показывает каждую строку, а не конкретную выбранную строку, и обновляет информацию в этом дочернем элементе.
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
print(tasks[indexPath.row].isFlagged)
var task = self.tasks[indexPath.row]
task.isFlagged.toggle()
guard let uid = Auth.auth().currentUser?.uid else { return }
var flag = ["isFlagged":false]
if tasks[indexPath.row].isFlagged == true {
flag = ["isFlagged":true]
} else {
flag = ["isFlagged":false]
}
Database.database().reference().child("users").child(uid).child("tasks").observeSingleEvent(of: .value, with: { (snapshot) in
if let result = snapshot.children.allObjects as? [DataSnapshot] {
for child in result {
var theKey = child.key as! String
print(theKey)
Database.database().reference().child("users").child(uid).child("tasks").child(theKey).updateChildValues(flag)
}
}
})
}