使用 FirebaseUI 在 Firebase 数据库中删除 Child
Remove a Child in Firebase Database using FirebaseUI
FirebaseUI 跟踪数据库中的更改并将其与我的 TableView 同步,这很好。我需要用户在滑动 tableView 单元格时能够自行删除 childs。
我正在使用 populateCellWithBlock 来填充我的 table。但是,我找不到有关如何删除 child 的任何信息。
我有:
override func viewDidLoad() {
super.viewDidLoad()
dataSource = FirebaseTableViewDataSource.init(query: getQuery(),prototypeReuseIdentifier: "Cellident", view: self.tableView)
dataSource?.populateCellWithBlock { (cell: UITableViewCell, obj: NSObject) -> Void in
//Filling the table:
let customCell = cell as! CustomCellTableViewCell
let snap = obj as! FIRDataSnapshot
let childString = snap.value as! [String : AnyObject]
let data = childString["data"] as? String
customCell.urlLabel.text = String(data!)
}
tableView.dataSource = dataSource
tableView.delegate = self
}
现在,我尝试了几种数组方法,但无法弄清楚如何使它们保持同步。我的问题是我不知道如何删除特定路径上的 child,这意味着 child 位于单个单元格中。如何确保 swiped-to-delete 的单元格触发从该单元格中删除 child?
我的问题是这里的最佳实践是什么,如果我希望用户能够删除 child。显然它需要从数据库和 table 视图中删除,但由于 FirebaseUI 会跟踪更改,我确定必须有一种使用 FirebaseUI 删除它的方法?
所以经过一番尝试,我找到了解决办法。我正在使用 MGSwipeTableCell 以使单元格可滑动并显示删除按钮,然后在它的便利回调中,我只是做了:
let removebtn = MGSwipeButton(title: "Delete", backgroundColor: UIColor.redColor(), callback: {
(sender: MGSwipeTableCell!) -> Bool in
snap.ref.removeValue() //This
return true
})
快照在哪里:
let snap = obj as! FIRDataSnapshot
FirebaseUI 跟踪数据库中的更改并将其与我的 TableView 同步,这很好。我需要用户在滑动 tableView 单元格时能够自行删除 childs。
我正在使用 populateCellWithBlock 来填充我的 table。但是,我找不到有关如何删除 child 的任何信息。 我有:
override func viewDidLoad() {
super.viewDidLoad()
dataSource = FirebaseTableViewDataSource.init(query: getQuery(),prototypeReuseIdentifier: "Cellident", view: self.tableView)
dataSource?.populateCellWithBlock { (cell: UITableViewCell, obj: NSObject) -> Void in
//Filling the table:
let customCell = cell as! CustomCellTableViewCell
let snap = obj as! FIRDataSnapshot
let childString = snap.value as! [String : AnyObject]
let data = childString["data"] as? String
customCell.urlLabel.text = String(data!)
}
tableView.dataSource = dataSource
tableView.delegate = self
}
现在,我尝试了几种数组方法,但无法弄清楚如何使它们保持同步。我的问题是我不知道如何删除特定路径上的 child,这意味着 child 位于单个单元格中。如何确保 swiped-to-delete 的单元格触发从该单元格中删除 child?
我的问题是这里的最佳实践是什么,如果我希望用户能够删除 child。显然它需要从数据库和 table 视图中删除,但由于 FirebaseUI 会跟踪更改,我确定必须有一种使用 FirebaseUI 删除它的方法?
所以经过一番尝试,我找到了解决办法。我正在使用 MGSwipeTableCell 以使单元格可滑动并显示删除按钮,然后在它的便利回调中,我只是做了:
let removebtn = MGSwipeButton(title: "Delete", backgroundColor: UIColor.redColor(), callback: {
(sender: MGSwipeTableCell!) -> Bool in
snap.ref.removeValue() //This
return true
})
快照在哪里:
let snap = obj as! FIRDataSnapshot