【问题标题】:Remove a Child in Firebase Database using FirebaseUI使用 FirebaseUI 删除 Firebase 数据库中的子项
【发布时间】:2016-12-30 16:42:11
【问题描述】:

FirebaseUI 跟踪数据库中的更改并将其与我的 TableView 同步,这很好。我需要用户在滑动 tableView 单元格时能够自己删除孩子。

我正在使用 populateCellWithBlock 来填充我的表格。但是,我找不到有关如何删除孩子的任何信息。 我有什么:

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
}

现在,我尝试了几种使用数组的方法,但不知道如何使它们保持同步。我的问题是我不知道如何删除特定路径上的孩子,这意味着在单个单元格中的孩子。如何确保 滑动删除 的单元格触发从该单元格中删除子项?

我的问题是,如果我希望用户能够删除孩子,这里的最佳做法是什么。显然需要从数据库和tableView中删除,但是由于FirebaseUI会跟踪变化,我确定一定有办法使用FirebaseUI删除它?

【问题讨论】:

  • 对于 FirebaseUI(以及一般的 Firebase 数据库),建议您更新数据库中的数据并让 UI 以此为基础更新。这会导致非常单向的数据流,(在我看来)这通常是最容易维护的。
  • @FrankvanPuffelen 谢谢弗兰克,我也这么认为。但是有实际的代码示例吗?如前所述,我正在努力解决如何删除特定的 Childs(来自上面的 tableview 的那些)。对于本地数据,您可以使用 indexPath 之类的东西,但是在这里怎么做呢?
  • 我希望datasource.objectAtIndex() 能做到这一点。 datasource.objectAtIndex(indexPath).ref.removeValue()
  • @FrankvanPuffelen 谢谢,我认为这会导致正确的方向。但是,我对 indexPath 使用什么?它给了我它未定义的错误。这就是我的难处。

标签: swift uitableview firebase firebase-realtime-database firebaseui


【解决方案1】:

所以在尝试之后,我找到了解决方案。我正在使用 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-12
    • 1970-01-01
    相关资源
    最近更新 更多