如何在带有Swift的表视图中使用didSelectRowAt确定选择了哪个Firebase子级?
我无法确定如何在表视图中确定正在选择Firebase数据库中的哪个子项,然后更新数据库中该选定子项下的信息 我发现了一个observe函数,它可以正确地显示每一行的所有childByAutoID,但它会显示每一行,而不是所选的特定行,并更新该子行下的信息如何在带有Swift的表视图中使用didSelectRowAt确定选择了哪个Firebase子级?,swift,firebase,uitableview,firebase-realtime-database,Swift,Firebase,Uitableview,Firebase Realtime Database,我无法确定如何在表视图中确定正在选择Firebase数据库中的哪个子项,然后更新数据库中该选定子项下的信息 我发现了一个observe函数,它可以正确地显示每一行的所有childByAutoID,但它会显示每一行,而不是所选的特定行,并更新该子行下的信息 override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { print(tasks[indexPath.row].is
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)
}
}
})
}
阅读
任务时,应存储字典的根键,以便以后使用
然后在didSelectRowAt
let task = self.tasks[indexPath.row]
Database.database().reference().child("users").child(uid).child("tasks").child(task.key).updateChildValues(flag)
阅读tasks
时,应存储字典的根键,以便以后使用
然后在didSelectRowAt
let task = self.tasks[indexPath.row]
Database.database().reference().child("users").child(uid).child("tasks").child(task.key).updateChildValues(flag)